我们知道,在程序翻译的过程中一般会经过四个步骤
预处理 | 头文件展开,条件编译,宏替换,去注释 |
编译 | C语言代码--->汇编代码 |
汇编 | 汇编代码--->可重定向目标二进制文件(只把自己写的函数形成二进制文件,此阶段无法被执行) |
链接 | .obj文件和库文件合并,形成可执行程序(有几个源文件,就有几个obj文件) |
而在Vs2022这种集成开发环境下,我们直接进行了以上四个步骤,生成可执行程序,为了能了解程序翻译的整个过程,我们使用Linux操作系统进行演示
首先我们在Linux下编写一段最简单的程序
接着我们学习第一条gcc命令
预处理后就停下 | gcc -E test.c -o test.i |
执行此命令,获得了test.i文件,我们使用文本编辑器打开,发现包含了非常多的头文件,是进行了预处理方面的操作
第二条gcc命令
编译后就停止 | gcc -S test.i -o test.s |
如图,生成了汇编代码
第三条gcc命令
汇编后停止 | gcc -c test.s -o test.o |
如图,生成了二进制文件。
第四条gcc命令
生成可执行程序 | gcc test.o -o myfile |
如图,生成了可执行程序
以上便是gcc的简单操作,使用gcc可以对程序进行编译,生成的可执行程序可以被直接运行