GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理C语言。GCC 很快地扩展,变得可处理 C++。后来又扩展为能够支持更多编程语言,如Fortran、Pascal、Objective-C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器套件(GNU Compiler Collection)。

gcc命令下各选项的含义

  • -E:仅作预处理,不进行编译、汇编和链接
  • -S:仅编译到汇编语言,不进行汇编和链接
  • -c:编译、汇编到目标代码(也就是计算机可识别的二进制)
  • -o:执行命令后文件的命名
  • -g:生成调试信息
  • -w:不生成任何警告
  • -Wall:生成所有的警告

gcc编译的四个步骤

  1. 预处理:gcc -E Test.c -o Test.i
  2. 编译:    gcc -S Test.i -o Test.s
  3. 汇编:    gcc -c Test.s -o Test.o
  4. 链接生成可执行文件: gcc Test.o -o Test

简单程序的编译过程

 1. 先创建一个Test.c文件

2.逐步编译

   ①预处理:

                   

此时我们发现目录中已经出现了我们创建的Test.i文件,不妨cat进去看一下里面都有什么吧:

由此我们发现:gcc的-E选项,可以让编译器在预处理后停止,并输出预处理结果

在此程序中中,预处理结果就是将stdio.h 文件中的内容插入到Test.c中了。

   ②编译:

gcc的-S选项,表示在程序编译期间,将我们的代码编译成汇编语言。

    ③汇编:

                 

gcc的-c选项,表示由汇编器负责将刚才的.s文件编译为目标文件,即计算机所能识别的序列。

      ④链接生成可执行文件: 

                

将刚才的Test.o文件与C标准输入输出库进行连接,最终生成程序Test可执行文件。

3.运行程序

这里我们就完成了从最开始的代码,到最终可执行文件的整个过程。

Linux下gcc命令详解相关推荐

  1. linux下dd命令详解

    linux下dd命令详解    名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file 使用方式: dd [option] 如果 ...

  2. linux下scp命令详解

    http://www.cnblogs.com/xuxm2007/archive/2010/08/04/1792179.html linux下scp命令详解 http://www.9usb.net/20 ...

  3. linux下tree命令详解

    From:http://blog.163.com/ly_89/blog/static/186902299201161302812880/ linux下tree命令详解---linux以树状图逐级列出目 ...

  4. Linux下top命令详解

    Linux下top命令详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不断刷 ...

  5. linux系统rar命令行,Linux下rar命令详解

    Linux下rar命令详解 发布时间:2010-05-24 23:28:23   作者:佚名   我要评论 通常rar命令由一个主命令加若干选项(可选)构成,操作文档为操作施加的.rar文件对象,文件 ...

  6. linux cat命令缩写,linux下cat命令详解

    cat 能够一同显现多个文件的内容,比方咱们能够在一个cat指令上一同显现两个文件的内容;那么你知道linux下cat命令详解么?接下来是小编为大家收集的linux下cat命令详解,欢迎大家阅读: l ...

  7. linux中的ps fx命令,Linux下ps命令详解 Linux下ps命令的详细使用方法

    Linux下ps命令详解 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断 ...

  8. linux 命令xargs,Linux下xargs命令详解

    Linux下xargs命令详解 1. 简介   之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如: find /sbin -pe ...

  9. linux中top指令,Linux下top命令详解

    原标题:Linux下top命令详解 1.简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top显示系统当前的进程和其他状况 ...

最新文章

  1. 中科创达孙力:不迷信 AI 算法,智能视觉如何转型升级?
  2. linux手动安装rsync_Linux服务器之间文件如何实现实时同步传输
  3. 基于Boost::beast模块的同步WebSocket服务器
  4. 前端学习(1903)vue之电商管理系统电商系统之调用api添加用户
  5. 【AD用户设置系列一】让IT省心省力的漫游配置文件
  6. 【算法】剑指 Offer 18. 删除链表的节点
  7. 创建二叉树的代码_解二叉树的右视图的两种方式
  8. 下面不是android四大组件之一的是,Android四大组件之一 Service
  9. html video播放rmvb,HTML如何播放rmvb格式的视频??要可以播放的代码。。。。
  10. exsi 安装ipmi_在vSphere中为不同服务器配置IPMI功能
  11. 计算机网络之网络层- IPv4编址
  12. java基础学习_集合类04_Map接口、Collections工具类_day18总结
  13. 来,带你认识几种最流行的Python编辑器的IDEs
  14. 可信启动、安全启动:SGX、TrustZone、SecureEnclave
  15. RFID读写器的组成
  16. 画环形或者蚊香线圈的软件介绍以及使用笔记
  17. Ducky Debugging(字符串输入)题解
  18. java手动/按模板生成word与excel
  19. 游戏外包开发技术难点分析
  20. 敏捷项目管理与传统项目管理有什么区别?

热门文章

  1. jsp042ssm宠物狗猫咪交流网站
  2. RecyclerView+网络加载数据图片+属性动画对角平移透明
  3. 亚马逊POA计划怎么写
  4. js 根据秒数获取多少小时,多少分钟,多少秒
  5. 招才猫显示服务器开小差,梦幻西游:百区平转开启却抢不到服务器?教你几招助你顺利转区...
  6. python大牛_成为Python大牛必须要掌握的高端语法——yield
  7. WebService soap报文请求与响应报文解析
  8. 使用simhash进行海量文章数据相似度去重
  9. [JZOJ5952] 凯旋而归 ([BZOJ 5092]【Lydsy1711月赛】分割序列)【高维前缀和】【DP】
  10. 2015年西北工业大学机试第八题