gcc的工作流程
gcc的工作流程可以简单分为以下4步
- 预处理 --E
(1) 宏替换
(2) 头文件展开
(3) 注释去掉
xxx.c -> xxx.i
此时,xxx.i文件依然是c文件,其实内容并没有什么大的变化
命令为 gcc -E hello.c hello.i
gcc默认的编译工具 cpp
-
编译 --S
生成汇编文件,此时xxx.s 为汇编代码的文件
xxx.i -> xxx.s
命令为gcc -S hello.i -o hello.s
gcc默认工具为gcc -
汇编 --c
生成二进制文件,此时xxx.o 为二进制文件,可以被计算机直接执行
xxx.s ->xxx.o
命令为gcc -c hello.s -o hello.o
gcc默认工具为as -
链接
生成最终可执行文件
xxx.o ->xxx 没有后缀,因为可执行文件一般不加后缀
命令为gcc hello.o -o hello
gcc默认工具为ld
最终流程为hello.c —> hello.i —> hello.s —> hello.o —> hello
总结,这些了解一下,记住4个步骤,出了报错信息知道是哪个步骤出了问题就可以了,一般我们就用一个gcc hello.c -o hello(gcc会自动完成4个步骤)
gcc的常用参数
-
-v/–version 可以查看gcc的版本
-
-I 我们在编译的时候指定头文件的路径,如果头文件和.c文件在同一个目录中,