gcc,g++ / gdb的使用 / make/Makefile/进度条/git

Linux编译器 - gcc/g++使用

默认编译出来的文件名是 a.out
./ 的意思是当前路径下
gcc,g++ / gdb的使用 / make/Makefile/进度条/git_第1张图片

复习一下四个步骤:
1.预处理(进行宏替换)
2.编译(生成汇编语言)
3.汇编(生成机器可识别的代码)
4.链接(生成可执行文件或库文件)

①使用指令生成mycode.i文件(.i为后缀一般是预处理以后的文件)
-E的意思是开始翻译,到预处理这个动作后结束gcc,g++ / gdb的使用 / make/Makefile/进度条/git_第2张图片
打开预编译后的文件发现文件很大
gcc,g++ / gdb的使用 / make/Makefile/进度条/git_第3张图片

②同样执行gcc -S mycode.c -o mycode.s ,意思是“开始程序的翻译,完成编译以后,停止!!”
同时把它命名成mycode.s
gcc,g++ / gdb的使用 / make/Makefile/进度条/git_第4张图片
用命令vim mycode.s 打开出来就是一份汇编的代码
gcc,g++ / gdb的使用 / make/Makefile/进度条/git_第5张图片
问题:计算机可以执行汇编语言吗?汇编语言需要编译器吗?
不可以。 当然需要,汇编也有编译器

③第三步同样,gcc -c mytest.s -o mytest.c 形成汇编以后的代码(注意这边是小写c)
gcc,g++ / gdb的使用 / make/Makefile/进度条/git_第6张图片
gcc,g++ / gdb的使用 / make/Makefile/进度条/git_第7张图片
我们也可以使用二进制工具来查看od mycode.o
gcc,g++ / gdb的使用 / make/Makefile/进度条/git_第8张图片
汇编形成的虽然是二进制文件,但是不可以直接执行,这个文件叫做可重定向目标文件

*这些步骤+在一起,可以这么写
gcc,g++ / gdb的使用 / make/Makefile/进度条/git_第9张图片
记的小tip: ES

你可能感兴趣的:(Linux操作系统,c++,开发语言,后端)