GCC命令编译

GCC命令编译GCC命令

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

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

GCC命令编译

 

这 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   #运行

参考:

文章一 

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Google Earth Engine学习笔记——介绍和入门

    Google Earth Engine学习笔记——介绍和入门   最近接触GoogleEarthEngine,觉得很好玩,也很有应用前景,关键是免费的地理计算云平台。所以想认真学习下,学习过程中作些小的总结和记录,资料来源均为网络或GoogleEarthEngineAPI指南,今天先讲讲入门的知识。1、GoogleEarthEngine介绍   GoogleEarthEngine是Google提供的对大量全球尺度地球科学资料(尤其是…

    2026年1月24日
    4
  • Activity工作流引擎学习笔记(二)

    Activity工作流引擎学习笔记(二)核心APIProcessEngine说明:1) 在Activiti中最核心的类,其他的类都是由他而来。2) 产生方式:在前面看到了两种创建ProcessEngine(流程引擎)的方式,而这里要简化很多,调用ProcessEngines的getDefaultProceeEngine方法时会自动加载classpath下名为activiti.cfg.xml文件。3) 可以产生R

    2022年7月11日
    22
  • 【树莓派】搭建OpenWrt软路由,并作为旁路由的配置与应用方法

    【树莓派】搭建OpenWrt软路由,并作为旁路由的配置与应用方法文章主要基于树莓派,介绍了如何搭建OpenWrt软路由,以及其并作为旁路由的配置、应用方法,和家庭组网方案。

    2022年6月2日
    78
  • 清理谷歌浏览器注册表_将谷歌浏览器的注册表彻底删除的方法

    清理谷歌浏览器注册表_将谷歌浏览器的注册表彻底删除的方法解决谷歌浏览器无法重装问题。WindowsRegistryEditorVersion5.00;WARNING,thisfilewillremoveGoogleChromeregistryentries;fromyourWindowsRegistry.Considerbackingupyourregistrybefore;usingthisfile:…

    2025年6月14日
    3
  • mmc卡和sd卡区别「建议收藏」

    mmc卡和sd卡区别「建议收藏」转载:https://zhidao.baidu.com/question/296690750.html区别:1、尺寸不同:SD卡的技术是基于MultiMedia卡(MMC)格式上发展而来,大小和MMC卡差不多,尺寸为32mmx24mmx2.1mm。长宽和MMC卡一样,只是比MMC卡厚了0.7mm,以容纳更大容量的存贮单元。2、兼容性不同:SD卡与MMC卡保持着向上兼容,…

    2022年6月11日
    37
  • QT 实现 RTSP 视频流服务器[通俗易懂]

    QT 实现 RTSP 视频流服务器[通俗易懂]uos操作系统中使用QT开发RTSP视频流服务器,以下的实现方式使用的是单播方式。可以通过自己开发的rtsp服务器将摄像头的数据推送到服务器中,其他用户可以通过访问视频流地址,直接访问摄像头的内容,也就是通常说的摄像头直播。本篇文章使用开源框架live555开发一个属于自己的视频流服务器。

    2022年10月20日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号