1).使用gcc编译器细分每一个编译的步骤,可以分为4个步骤:
c文件 汇编文件 二进制文件 可执行文件
hello.c--预处理器(cpp)--> hello.i --编译器(gcc)--> hello.s --汇编器(as)--> hello.o --链接器(Id)--> a.out
gcc -E gcc -S gcc -c gcc
2).编译工具链:
预处理器(cpp)-->头文件展开,宏替换,注释去掉 gcc -E hello.c -o hello.i
编译器(gcc) -->c文件变成汇编文件 gcc -S hello.i -o hello.s
汇编器(as) -->汇编文件变成二进制文件 gcc -c hello.s -o hello.o
链接器(Id) -->将函数库中相应的代码组合到目标文件 gcc hello.o -o hello.out
将 c文件 编译成 汇编文件是比较耗时的
3).-I 指定头文件的路径
gcc sum.c -I ./include -o app 【-I 指定头文件的路径,头文件.h跟当前文件不在同一个目录下】
4).-D 在编译时候指定宏定义【控制log输出】
gcc sum.c -D DEBUG -o app.out 【DEBUG--#define DEBUG】
5).-On n=0,1,2,3
-O0 没有优化
-O1 缺省值
-O3 优化级别最高
6).-Wall 提示更多警告信息
7).-g gdb调试的时候必须加此参数
8).-o 对生成文件的名字做个指定