从源代码到可执行程序的流程
1、预处理:处理一些预处理指令,例如#include等
2、编译:把高级语言转换为汇编语言
3、汇编:把汇编语言文件转换为二进制文件
4、链接:如果各个文件有依赖关系会考虑依赖关系建立各个文件之间的联系
g++常用指令
① g++ -E xxx.cpp 仅作预处理,不进行编译、汇编和链接,生成预处理之后的文件(.i)
执行该指令会直接在terminal中显示预处理过程,例如#include,只能看到部分预处理结果;这个只显示预处理,不生成文件;如果想查看详细的预处理,可以重定向到一个文件中,预处理之后的文件会生成在.i文件中
g++ -E main.cxx -o main.i
②g++ -s 编译到汇编语言文件,即只激活预处理和编译,生成汇编语言文件(.s)
g++ -s main.i -o main.s
③g++ -c 编译、汇编到目标代码,不进行链接,即生成目标文件(.o)
g++ -c main.s -o main.o
④g++ -o xxx 如果-o后面没有文件名字,那么会默认生成a.out,生成链接文件(.out)
g++ main.o -o main
使用
如果不需要中间文件那么直接使用g++一步到位编译到可执行文件即可,具体格式为:g++ [主文件] [依赖文件] -o [输出可执行文件名字]
g++ main.cpp test1.cpp test2.cpp -o main
版权归原作者 linzs.online 所有, 如有侵权,请联系我们删除。