1.gcc工作流程
gcc
编译器将c
源文件到生成一个可执行程序,一共有四个步骤:预处理、编译、汇编和链接
四个步骤并不是gcc
独立完成的,而是在内部调用了其他工具。
使用gcc test.c -o test
可以编译源代码生成可执行文件,下面介绍一下四个步骤:
gcc -E test.c -o test.i
预处理:将头文件展开、宏替换、去除注释gcc -S test.i -o test.s
编译:将C文件编译成汇编文件gcc -c test.s -o test.o
汇编:将汇编文件转成二进制文件gcc test.o -o test
链接:将函数库中相应的代码组合到目标文件中
2.gcc常用参数
-v
查看gcc版本号, 使用--version
也可,注意有两个-
-E
生成预处理文件-S
生成汇编文件-c
只编译,生成.o
文件,通常称为目标文件-I
指定头文件所在的路径-L
指定库文件所在的路径-l
指定库的名字-o
指定生成的目标文件的名字-g
包含调试信息,使用gdb
调试需要添加-g
参数-On
(n=0∼3) 编译优化,n越大优化得越多,比如一些不用的变量不会定义等-Wall
提示更多警告信息-D
编译时定义宏,如test.c
中用到MAXN
但未定义可用gcc -o test test.c -D MAXN=10
进行编译