欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

gcc 常用命令(逐渐完善)

发布时间:2025/6/17 编程问答 44 豆豆
生活随笔 收集整理的这篇文章主要介绍了 gcc 常用命令(逐渐完善) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

首先适用一个简单的示例程序,如下:

//test.c #include <stdio.h> int main(void) {printf("Hello gcc!\n"); }

这个程序直接编译使用

gcc test.c -o test

即可,其中-o的意思是生成后面的文件。

而实际上编译过程是分为以下几个子过程的:

  • 预处理(Preprocessing)
  • 编译(Compilation)
  • 汇编(Assembly)
  • 链接(Linking)

我们可以一步一步执行,来观察每一步结果

1、预处理过程(Preprocessing):

gcc -E test.c -o test.i 或 gcc -E test.c

这步可以输出test.i文件,存放test.c讲过预处理之后的代码。

如果时候后者,则直接在命令窗口显示预处理的结果。

gcc的-E选项可以让编译器在预处理后就停止,并输出结果。

 

2、编译为汇编代码(Compolation)过程:

通过对预处理结果test.i文件进行编译,可以生成汇编代码

gcc -S test.i -o test.s

gcc 的-S选项表示在程序编译期间,在生成汇编代码后停止,-o输出汇编代码文件

 

3、汇编过程(Assembly):

对于上一届段生成的test.s 文件,gas汇编器负责将其编译为目标文件,如下:

gcc -c test.s -o test.o

在这个生成文件中我们已经没有办法在详细看了,因为它已经是二进制代码

 

4、链接过程(Linking):

gcc 链接器是gas 提供的,负责将程序的目标文件与所需的所有附加的目标文件连接起来,最终形成执行文件,包含静态链接库和动态链接库。

对于上一阶段生成的test.o文件,将其与C标准输入输出库进行链接,最终生成test

gcc test.o -o test

在命令阶段即可运行./test来输出结果了。

 

转载于:https://www.cnblogs.com/bearcat/archive/2012/05/03/2480454.html

总结

以上是生活随笔为你收集整理的gcc 常用命令(逐渐完善)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。