前言
我用的环境是直接在跑深度学习的 AutoDL 服务器上,通过 VSCode SSH 远程登录。
大家如果通过虚拟机 (VM) 登录的话,可以自行搜索相关的环境搭建教程。
✨ 超级推荐使用 VSCode,非常方便且高效!
🛠️ 1. GCC 调试
GCC 编译器的使用是将代码文件编译和汇编为可执行程序的过程。相信大家对这个过程已经耳熟能详了,下面我将通过 GCC/G++ 带大家一步步探索这个过程。

这是一些提示:


✨ 编写简单的 C 语言程序
首先,我们编写一个简单的 C 语言程序:
#include <stdio.h>
#define PI 3.14
int main() {
// 这是我的代码注释
int e = PI * 2;
printf("first linux\n");
return 0;
}
如果直接使用以下命令编译:
gcc test.c -o test
就会生成 test 的可执行文件:

🔍 步骤一:预处理
我们可以一步一步来观察这个过程,从预处理开始:
gcc test.c -E -o test.i

这个命令会生成预处理后的 test.i 文件。打开该文件:


💡 提示:只展示了开头和结尾部分。通过预处理,预处理器把我们的头文件包含的代码都加进来了,宏定义也被替换了,同时消除了注释。
🔍 步骤二:编译
接下来进行编译,将预处理文件转换为汇编代码:
gcc test.i -S -o test.s

生成了 test.s 文件,它是汇编代码文件。

🔍 步骤三:汇编
将汇编文件转换为目标文件(机器代码):
gcc test.s -c -o test.o

test.o 就是通过汇编器生成的二进制目标文件。

🔍 步骤四:链接
最后一步,将目标文件链接生成可执行文件:
gcc test.o -o test

如图所示,生成了 test 的可执行文件。当然,你也可以直接使用以下命令一步到位:
gcc test.c -o test
通过这个过程,我们展示了 GCC 编译、汇编和链接的完整过程:

希望这篇文章能帮助你更好地理解 GCC 编译器的工作原理,从预处理到汇编再到最终生成可执行文件的每一个环节。如果你对这些步骤有任何疑问,欢迎在评论区留言讨论!🚀
1481

被折叠的 条评论
为什么被折叠?



