Linux编译器 - gcc/g++使用
默认编译出来的文件名是 a.out
./ 的意思是当前路径下
复习一下四个步骤:
1.预处理(进行宏替换)
2.编译(生成汇编语言)
3.汇编(生成机器可识别的代码)
4.链接(生成可执行文件或库文件)
①使用指令生成mycode.i文件(.i为后缀一般是预处理以后的文件)
-E的意思是开始翻译,到预处理这个动作后结束
打开预编译后的文件发现文件很大
②同样执行gcc -S mycode.c -o mycode.s ,意思是“开始程序的翻译,完成编译以后,停止!!”
同时把它命名成mycode.s
用命令vim mycode.s 打开出来就是一份汇编的代码
问题:计算机可以执行汇编语言吗?汇编语言需要编译器吗?
不可以。 当然需要,汇编也有编译器
③第三步同样,gcc -c mytest.s -o mytest.c 形成汇编以后的代码(注意这边是小写c)
我们也可以使用二进制工具来查看od mycode.o
汇编形成的虽然是二进制文件,但是不可以直接执行,这个文件叫做可重定向目标文件
*这些步骤+在一起,可以这么写
记的小tip: ESc 对应的就是键盘左上的按键,形成的文件就是iso
为什么C程序翻译是这个过程?
最开始的人写代码&#