C语言编译四个阶段: 预处理、编译、汇编、链接。
- 预处理阶段:预处理器cpp根据字符#开头的命令,修改C程序。通常以i作为文件扩展名
- 编译阶段:编译器cc1将文件文件
hello.i
翻译成文本文件hello.s
,它包含一个汇编语言程序。 - 汇编阶段:接下来,汇编器
as
将hello.s
翻译成机器语言指令,把这些指令打包成一种叫做可重定位目标程序的格式,并将结果保存在目标文件hello.o
中。 - 链接阶段:链接器ld负责处理这种合并,可以被加载到内存中,由系统执行
仅预处理
gcc -E hello_world.c > hello_world.i
仅编译
gcc -S hello_world.c
编译并汇编,但是不链接
gcc -c hello_world.c
一步到位
gcc hello_world.c
网友评论