gcc编译器见:http://xinyiworld.top/wordpress_it/?p=1749
目录
编译产物
https://blog.csdn.net/Groupers/article/details/111570459
https://blog.csdn.net/qq_59084325/article/details/125726056
执行可执行文件
./文件名,不能直接在命令行输入文件名。
编译过程
http://c.biancheng.net/view/1736.html
https://blog.csdn.net/qq_62939852/article/details/127263338
https://www.jianshu.com/p/b4c3e80269a6
格式
gcc -E/-S/-c 中间文件 -o 目标文件
(注意参数区分大小写)
gcc test.cpp
不带任何的参数默认生成test.out文件,也就是可执行文件。
1.预处理
所做的操作:展开宏、头文件、替换条件编译、删除注释、空白、空行
g++ -E test.cpp -o test.i //.i文件
或者
g++ -E test.cpp > test.i //.i文件
g++ -E
默认不会生成文件,会将文件内容打印到屏幕。
2.编译
所做的操作:检查语法规范,生成汇编语言
g++ -S test.i [-o test.s]
g++ -S test.i
默认生成test.s文件,如果想修改生成的文件名,可以使用-o参数。
3.汇编
所作操作:将汇编代码编译成目标文件,也就是转换成了目标机器平台上的机器指令
g++ -c test.s -o test.o
.o:目标文件(二进制文件)
4.链接
所作操作:数据段合并,数据地址回填。将目标文件连接成可执行文件
g++ test.o -o test
注意:如果链接时存在同名的库文件,优先链接动态库。
如何保留所有中间文件:加上-save-temps
参数
编译原理
https://zhuanlan.zhihu.com/p/94249215
http://www.360doc.com/content/21/1027/21/277688_1001569890.shtml
- C语言文件与头文件的关系
https://zhuanlan.zhihu.com/p/94249215
0 条评论