GCC命令编译
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
gcc -E test.c –o test.i #得到 .i文件
(2)编译,将预处理得到的源代码文件,进行“翻译转换”,产生出机器语言的目标 程序,得到机器语言的汇编文件,后缀是 .s文件。
编译参数:-S
gcc -S test.i #得到 .s文件
(3)汇编,将汇编代码翻译成了机器码,但是还不可以运行,后缀是 .o文件。
编译参数:-c
gcc -c test.s #得到 .o文件
(4) 链接,处理可重定位文件,把各种符号引用和符号定义转换成为可执行文件中 的合适信息,通常是虚拟地址,后缀是 .out 文件或者可执行文件
gcc hello.o #得到 .out文件
2.GCC编译使用命令
最简单使用命令
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 #运行
参考:
------------------------
感谢您的阅读!
如果您觉得该文章写的还不错,对您有帮助,想对我微小的工作一点激励,欢迎赞赏支持。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!