内容简介:gcc/g++编译过程
gcc/g++编译过程一共包括四个步骤,分别是预处理、编译、汇编和链接,以如下 test.cpp
源代码为例,详细介绍各个步骤的作用。
#include <iostream> using namespace std; int main() { cout << "Hello, World!" << endl; return 0; }
预处理
就是将所有的 #include
的文件和宏定义替换成其真正的内容,预处理之后得到的仍然是文本代码,但是文件的体积会大很多。 gcc
的预处理是使用预处理器 cpp
完成的。
g++ -E test.cpp -o test.i
或者使用 cpp
预处理命令
cpp test.cpp -o test.i
其中,上述命令中的 -E
是编译器在完成预处理后就结束,不再继续进行编译过程; -o
指定输出文件名
编译
编译是指将预处理之后的程序转换成特定的汇编代码的过程,是将程序从源文件转换成二进制可执行文件的第一部分操作。
编译命令如下:
g++ -S test.i -o test.s
其中 -S
表示编译器在编译完成之后就停止,不进行后续过程。
汇编
汇编将编译得到的汇编代码转换成机器码,生成二进制目标文件, gcc
使用 as
命令完成汇编过程。
as test.s -o test.o
等价于
g++ -c test.s -o test.o
这一步会为每一个 .cpp
源文件生成一个 .o
文件。
链接
链接过程将多个目标文件以及所需要的库文件(.so等)链接成最终的可执行文件,命令如下:
g++ test.o -o test ./test
总结来说,C语言编译一共需要四个步骤:预处理->编译->汇编->链接四个步骤!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web Security Testing Cookbook
Paco Hope、Ben Walther / O'Reilly Media / 2008-10-24 / USD 39.99
Among the tests you perform on web applications, security testing is perhaps the most important, yet it's often the most neglected. The recipes in the Web Security Testing Cookbook demonstrate how dev......一起来看看 《Web Security Testing Cookbook》 这本书的介绍吧!