gcc编译过程
gcc将将源文件编译生成二进制文件经过以下四个过程:
-
预处理: 生成.i文件
gcc -E hello.c -o hello.i
此步对c的各种预处理命令进行处理, 包括头文件的包含,宏定义的扩展,条件编译的选择等.
-
编译器:生成.s文件
gcc -S hello.i -o hello.s
将预处理得到的源代码编译成汇编代码
-
汇编器:生成.o文件
gcc -c hello.s -o hello.o
将汇编代码翻译成机器代码 -
链接器:生成目标文件
gcc 生成a.out
处理可重定位文件,把各种符号引用和符号定义转化为可执行文件中的合适信息
以上四部过程可以通过一步完成:
gcc hello.c -o myapp
gcc参数
- -I(大写的i)
包含头文件的目录 - -O [0,1,2,3]
优化程序, 3最高<