gcc 编译:
1、预编译阶段:
作用:展开宏,把头文件内容解释出来生成*.i文件;
a、将#include的内容解释出来
b、处理条件预处理命令,比如#if #ifdef #elif #else #endif等
c、删除所有的注释 /* ... */ //
d、展开宏定义
gcc 源文件(xxx.c) -E -o xxx.i
gcc vol.c -E -o vol.i
gcc: 编译器
vol.c: 源文件(xxx.c)
-E,-o: 不可更改
xxx.i: 预编译文件
2、编译阶段:
作用:检查语法错误,翻译成汇编语言 (面试或者笔试会考)
gcc vol.i -S -o vol.s
gcc xxx.i -S -o xxx.s
gcc: 编译器
xxx.i: 预编译文件
-S,-o: 不可更改
xxx.s: 汇编文件
3、汇编阶段:
作用:将汇编语言生成机器指令
gcc vol.s -c -o vol.o
gcc xxx.s -c -o xxx.o
gcc: 编译器
xxx.s: 汇编文件
-c,-o: 不可更改
xxx.o: 机器指令
4、链接阶段:
作用:链接器将程序运行所需要的一大堆目标文件、所依赖的其它库文件链接生成可执行文件
gcc vol.o -o vol
gcc xxx.o -o xxx
gcc: 编译器
xxx.o: 机器指令
-o: 不可更改
xxx: 可执行文件
执行:
./xxx //执行xxx
一句搞定:
gcc vol.c -o vol.o
gcc -o sizeof.o sizeof.c