c代码编译成可执行程序4步:

1.预处理:宏定义展开,头文件展开,条件编译,同时将代码中的注释删除,这里并不会检查语法

gcc -E hello.c -o hello.i

2.编译:检查语法,将预处理后的文件编译成汇编文件

gcc -S hello.i -o hello.s

3.汇编:将汇编文件生成目标文件(二进制文件)

gcc -c hello.s -o hello.o

4.链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终可执行程序中去

gcc     hello.o -o hello

各选项含义:

-E  只进行预处理
-S  只进行预处理和编译
-c   只进行预处理 编译 和汇编
-o   指定生成的输出文件名为file

文件后缀的含义

.c C语言文件
.i  预处理后的C语言文件
.s 编译后的汇编文件
.o 编译后的目标文件
519722093.png

01-2.C(C程序编译步骤-gcc 编译过程)相关推荐

  1. gcc编译c语言多线程程序的步骤,GCC分步骤编译C语言程序

    上节<GCC编译C语言程序完整演示>讲解的是通过gcc命令一次性完成编译和链接的整个过程,这样最方便,大家在学习C语言的过程中一般都这么做.实际上,gcc命令也可以将编译和链接分开,每次只 ...

  2. C++:GCC编译:GCC编译C++程序分步流程

    C或者C++程序从源代码生成可执行程序的过程,需要经历4个过程分别是:预处理,编译,汇编,链接. 但考虑实际使用过程中,用户可能并不关心程序的执行结果,只是想快速得到最终的可执行程序,因此gcc和gc ...

  3. c语言编译四个步骤,gcc编译的四个步骤

    以最简单的hello.c为例子 一步到位:gcc hello.c 这条命令隐含执行了 (1)预处理 (2)编译 (3)汇编 (4)链接 这里未指定输出文件,默认输出为a.out gcc编译C源码有四个 ...

  4. linux系统的编译原理,GCC编译原理_Linux编程_Linux公社-Linux系统门户网站

    一.编译过程 使用gcc编译程序时,编译过程可被细分为四个阶段: (1)预处理 (2)编译 (3)汇编 (4)链接 例如hello.c程序 hello.c: #include int main(voi ...

  5. 在Linux下编写C++程序,使用gcc编译c++出错

    问题 /usr/bin/ld: /tmp/ccMSWoFl.o: in function __static_initialization_and_destruction_0(int, int)': f ...

  6. 使用vi编辑器编辑一个C语言源程序hello.c,并使用编译工具GCC编译该源程序。

    一.关于gcc的下载: 1.**输入命令:**yum install gcc 2.检查是否安装成功:which gcc **二.**使用vi编辑器编写c语言程序并用gcc工具箱编译 1.touch h ...

  7. Linux下C程序的编辑,编译和运行以及调试

                                                                                                        ...

  8. 在联盛德W600 SDK上添加C文件并实现GCC编译

    以下基于官网上最新的3.04版本(http://www.winnermicro.com/html/1/156/158/497.html)的SDK WM_SDK_W60X_G3.04.00 为例来详细说 ...

  9. c语言编译成功,[C/CPP系列知识] 那些程序C语言可以编译通过但C++无法编译成功 Write a C program that won’t compile in C++...

    下面的程序可以用gcc编译,但g++无法编译. #include intmain() { foo();//foo() is called before its declaration/definiti ...

最新文章

  1. (转)mxArray数据类型
  2. 贪心 ---- 贪心 + STL维护 + 划分集合 L. Neo-Robin Hood(好题)
  3. PhpCms V9调用指定栏目子栏目文章的方法
  4. python解一元二次方程步骤-使用Python解一元二次方程!
  5. 洛谷P2068 统计和题解
  6. 跳棋c语言,C/C++跳棋问题
  7. linux拷贝大量文件时有什么方法可以效验文件有没有损坏,使用linux的cp命令复制文件后验证文件是否一致的方法...
  8. [Redux/Mobx] redux和flux的区别是什么?
  9. python中continue格式_python自学(3)--for 、 while、 break、continue、字符格式化输出...
  10. paip.java 线程无限wait的解决
  11. 网络攻防WEB入门指南
  12. PTA-今天是本学期的第几周的第几天?
  13. Docker容器设置自动启动的方法
  14. Matlab矩阵和向量中的常用函数
  15. 用python画猫和老鼠_一个Python游戏:猫和老鼠
  16. 边缘人工智能芯片大放异彩
  17. 简洁安装HIT-SCIR(哈工大) pyltp
  18. 人脸核身--第二篇--启用 H5人脸认证
  19. 计算机经典书籍- -
  20. gradient clipping

热门文章

  1. java 遍历map获取下标_java 遍历Map并且获取其中的键值
  2. 国内网站安全测试6大步骤
  3. controller层没反应_热拉提一年做几次?热提拉的副作用根本没在怕的~
  4. python考试编程题九道_一道逻辑推理题的程序实现(纯属娱乐)
  5. python命令行进入帮助模式_python命令行模式直接查看帮助
  6. python 二分查找_二分查找算法总结
  7. mysql占位符 防注入_php mysql中防注入的几个小问题,麻烦大大帮我解答谢谢
  8. 字节跳动 java面经_字节跳动Java面经(已offer)
  9. u盘安装linux 提示no such device_树莓派学习笔记2-U盘挂载和系统备份
  10. android通讯录管理(获取联系人,通话记录,短信消息),Android通讯录管理(获取联系人、通话记录、短信消息)(二)...