GCC命令编译

2022-11-08 15:06:05 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

1.GCC编译过程(原理如下,使用命令请见2)

从 hello.c 到 hello(或 a.out)文件, 必须历经 hello.i、 hello.s、 hello.o,最后才得到 hello(或a.out)文件,分别对应着预处理、编译、汇编和链接 4 个步骤,整个过程如图所示。

这 4 步大致的工作内容如下:

(1)预处理,C 编译器对各种预处理命令进行处理,包括头文件包含、宏定义的扩 展、条件编译的选择等,后缀是 .i文件。

test.c是c代码,预处理参数:-E ;另起名称:-o

代码语言:javascript复制
gcc -E test.c –o test.i     #得到 .i文件

(2)编译,将预处理得到的源代码文件,进行“翻译转换”,产生出机器语言的目标 程序,得到机器语言的汇编文件,后缀是 .s文件。

编译参数:-S

代码语言:javascript复制
gcc -S test.i   #得到 .s文件

(3)汇编,将汇编代码翻译成了机器码,但是还不可以运行,后缀是 .o文件。

编译参数:-c

代码语言:javascript复制
gcc -c test.s   #得到 .o文件

(4) 链接,处理可重定位文件,把各种符号引用和符号定义转换成为可执行文件中 的合适信息,通常是虚拟地址,后缀是 .out 文件或者可执行文件

代码语言:javascript复制
gcc hello.o     #得到 .out文件

2.GCC编译使用命令

最简单使用命令

代码语言:javascript复制
gcc test.c    #在gcc命令紧跟test源文件名,会有一个 .out 文件
gcc test.c  -o test01.out    #通过 -o 选项来自定义文件名test01.out文件
gcc test.c -o  #/home/user/local/test.out # 在路径/home/user/local/下生成.out文件
./test.out   #运行

参考:

文章一

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182360.html原文链接:https://javaforall.cn

0 人点赞