目录
实验过程
#include<stdio.h>
int main(void)
{
printf("Hello World!\n");
return 0;
}
1.编写test.c
一步到位编译:gcc test.c -o test
该过程包括四个步骤:预处理(也称预编译,Preprocessing)、编译 (Compilation)、汇编 (Assembly)和连接(Linking)
2.预处理
gcc -E test.c -o test.i
gcc 的-E 选项,可以让编译器在预处理后停止,并输出预处理结果。在本例中,预处理结果就是将 stdio.h 文件中的内容插入到 test.c 中了
3.编译
预处理之后,可对生成的 test.i 文件编译,生成汇编代码
gcc -S test.i -o test.s
gcc 的-S 选项,表示在程序编译期间,在生成汇编代码后,停止,-o 输出汇编代码文件
4.汇编
对于上一小节中生成的汇编代码文件 test.s,gas 汇编器负责将其编译为目标文件
gcc -c test.s
5.连接
gcc 连接器是 gas 提供的,负责将程序的目标文件与所需的所有附加的目标文件连接起来,最终生 成可执行文件。附加的目标文件包括静态连接库和动态连接库。
对于上一小节中生成的 test.o,将其与C标准输入输出库进行连接,最终生成程序
test gcc test.o -o test
输入命令./test运行。