如何通过Ubuntu GCC轻松编译并生成一个可执行文件?

2026-05-28 19:371阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

在Ubuntu系统下使用GCC编译器生成可施行文件其实并不复杂,只要掌握了几个关键的参数和习惯。从最简单的gcc main.c生成默认的a.out到使用-o参数指定输出路径和文件名, 歇了吧... 再到理解预处理、编译、汇编、链接这四个步骤,每一步都让你离Linux内核的运作原理更近一步。

如何一个可施行文件?

对于许多刚从图形界面转过来的开发者,GCC就像是一把锋利但略显沉重的宝剑。你知道它能斩断代码的荆棘, 从头再来。 但有时候,挥舞之后你甚至不知道剑锋——也就是那个可施行文件——到底落在了哪里。

如何一个可执行文件?

了解GCC编译过程

说白了就是... 虽然我们平时口语中总说“编译代码”, 但从源代码到可施行文件的过程,其实是一场漫长的旅程,包含了四个紧密相连的步骤:预处理、编译、汇编和链接。

先说说预处理器会处理所有的#include#define等指令。它会把你引用的头文件内容一股脑地塞进来把宏定义替换掉。这时候的代码还是文本形式的,只是变得非常庞大。

接着,这才是我们通常意义上的“编译”。预处理后的文本被翻译成汇编语言。 太硬核了。 这是一种人类勉强能读懂的低级语言。

然后汇编器将汇编语言翻译成机器码。这时候会生成目标文件,通常后缀是.o,啊这...。

再说说链接器将所有的目标文件以及库文件组合在一起,生成到头来的可施行文件。这就是为什么有时候你会遇到“

GCC编译实战 假设你手里有一个名为main.c的C语言源代码文件,或者main.cpp的C++文件。你满怀激情地敲下了第一行编译命令: gcc main.c 或者对于C++用户: g++ main.cpp 回车键按下 如果没有报错,屏幕静悄悄地回到了提示符状态。这时候,你可能会犯嘀咕:“编译好了吗?文件去哪了?” 其实GCC非常“贴心”, 如果你不告诉它要把输出到哪里它就会默认在当前目录下生成一个名为a.out的文件。

阅读全文
标签:Ubuntu

在Ubuntu系统下使用GCC编译器生成可施行文件其实并不复杂,只要掌握了几个关键的参数和习惯。从最简单的gcc main.c生成默认的a.out到使用-o参数指定输出路径和文件名, 歇了吧... 再到理解预处理、编译、汇编、链接这四个步骤,每一步都让你离Linux内核的运作原理更近一步。

如何一个可施行文件?

对于许多刚从图形界面转过来的开发者,GCC就像是一把锋利但略显沉重的宝剑。你知道它能斩断代码的荆棘, 从头再来。 但有时候,挥舞之后你甚至不知道剑锋——也就是那个可施行文件——到底落在了哪里。

如何一个可执行文件?

了解GCC编译过程

说白了就是... 虽然我们平时口语中总说“编译代码”, 但从源代码到可施行文件的过程,其实是一场漫长的旅程,包含了四个紧密相连的步骤:预处理、编译、汇编和链接。

先说说预处理器会处理所有的#include#define等指令。它会把你引用的头文件内容一股脑地塞进来把宏定义替换掉。这时候的代码还是文本形式的,只是变得非常庞大。

接着,这才是我们通常意义上的“编译”。预处理后的文本被翻译成汇编语言。 太硬核了。 这是一种人类勉强能读懂的低级语言。

然后汇编器将汇编语言翻译成机器码。这时候会生成目标文件,通常后缀是.o,啊这...。

再说说链接器将所有的目标文件以及库文件组合在一起,生成到头来的可施行文件。这就是为什么有时候你会遇到“

GCC编译实战 假设你手里有一个名为main.c的C语言源代码文件,或者main.cpp的C++文件。你满怀激情地敲下了第一行编译命令: gcc main.c 或者对于C++用户: g++ main.cpp 回车键按下 如果没有报错,屏幕静悄悄地回到了提示符状态。这时候,你可能会犯嘀咕:“编译好了吗?文件去哪了?” 其实GCC非常“贴心”, 如果你不告诉它要把输出到哪里它就会默认在当前目录下生成一个名为a.out的文件。

阅读全文
标签:Ubuntu