C语言编译流程

2019-07-20  本文已影响0人  佟小胆胆小

编译就是将高级语言编写的程序转化为二进制代码可执行程序的过程

编译分为四大过程:

预处理(preprocessing)

我们可以使用gcc编译器对c源文件进行预处理操作

# 输入指令
gcc -E test.c -o test.i 
#将test.c源文件进行预处理输出test.i
# -E:让gcc在预处理结束后停止编译,“test.i"文件为预处理后输出的文件。
# -o:指定输出文件
预处理
预处理前的文件<test.c>大小为74bytes 预处理后的文<test.i>大小为34kb

编译(Compilation)

利用上面预处理后的test.i文件进行编译操作

# 输入指令
gcc -S test.i -o test.s
# 将预处理后的test.i文件进行编译输出test.s
# -S:让gcc在编译结束后停止编译过程,<test.s>文件为编译后生成的汇编代码。
编译

汇编(Assemble)

# 输入命令
gcc -c test.s -o test.o
# 将编译后生成的test.s文件进行汇编生成test.o
# -c让gcc在汇编结束后停止编译过程,"test.o"文件为汇编后生成的机器码目标文件
汇编

链接

# 输入命令
gcc test.o -o test
# 将test.o文件链接生成test可执行文件
# -o 本质是重命名选项。不使用-o选项时,默认生成的是a.out文件。这里生成的是可执行文件test.
链接
上一篇 下一篇

猜你喜欢

热点阅读