在linux系统中编写的c++程序运行需要经过四个阶段:
预处理阶段
编译阶段
汇编阶段
链接阶段
通常在运行一个程序时,只需要使用一条命令就可以执行了:
g++ test.cpp -o test
但是操作系统内部,需要对这个test.cpp文件进行四步处理
先使用vim编译器编写一个c++程序,test.cpp
然后对程序进行预处理,使用命令
g++ -E test.cpp -o test.i
这里的E代表的是仅对输入文件进行预处理步骤
此时系统会生成一个test.i文件,使用vim可以对其进行查看
接下来对程序进行编译,使用命令
g++ -S test.i -o test.s
-S告诉g++把源代码编译为汇编语言文件后停止编译
接下来对程序进行汇编,使用命令
g++ -c test.s -o test.o
-c 告诉g++把源代码编译为机器谕言的目标代码,二进制代码
最后对程序进行链接,生成可执行文件,使用命令
g++ test.o -o test
-o 指定产生的文件名