博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gcc编译
阅读量:5131 次
发布时间:2019-06-13

本文共 707 字,大约阅读时间需要 2 分钟。

一个C/C++文件要经过预处理、编译、汇编和连接等4步才能变成可执行文件:

     (1)以#开头的命令被统称为预处理,比如“#include”,宏定义命令“#define”和条件编译命令“#if”和 “#ifdef”等,经过预处理后的代码将输出到一个“.i”文件中去,预处理使用arm-Linux-cpp工具;
     (2)编译就是将“.i”代码“翻译”成汇编代码,即.s文件;
     (3)汇编就是将汇编代码“翻译”成一定格式的机器语代码,即.o文件,汇编使用arm-linux-as工具;

例如:现在有main.c,sub.h以及sub.c三个文件。

file:main.c

#include <stdio.h>
#include "sub.h"
int main(int argc, char *argv[])
{
    int i;
    printf("Main fun!\n");
    sub_fun();
    return 0;

file:sub.h

void sub_fun(void);

file:sub.c

void sub_fun(void)
{
    printf("sub fun!\n");
}

现在在终端下进行编译:

(1)   gcc  -c  -o  main.o  main.c
(2)   gcc  -c  -o  sub.o    sub.c
(3)  gcc  -o  test  main.o  sub.o

使用./test命令后,其打印结果为:

    Main fun!
    sub fun!

如果在编译过程中出现警告,可以使用 gcc -w来忽略警告。

转载于:https://www.cnblogs.com/dq23578/p/6774130.html

你可能感兴趣的文章
解决ajax请求cors跨域问题
查看>>
Android Studio
查看>>
zz 圣诞丨太阁所有的免费算法视频资料整理
查看>>
【大数模板】C++大数类 大数模板
查看>>
【123】
查看>>
《收获,不止Oracle》pdf
查看>>
用户权限设置
查看>>
java 之equals与"=="的区别
查看>>
LinkedList<E>源码分析
查看>>
学习微软 Excel 2002 VBA 编程和XML,ASP技术
查看>>
LeetCode - Combinations
查看>>
游戏开发常用算法
查看>>
Real-Time Rendering 笔记
查看>>
如何理解HTML结构的语义化
查看>>
Intellij IDEA(eclipse设置)常用快捷键
查看>>
c语言字符输出格式化
查看>>
数组方法pop() push() unshift() shift()
查看>>
jq阻止事件冒泡,模拟下拉列表
查看>>
Python数据分析I
查看>>
数据库增删改查操作
查看>>