美文网首页
【C】C语言编译过程

【C】C语言编译过程

作者: ytlm | 来源:发表于2016-06-07 10:43 被阅读28次

1,编译预处理(gcc -E main.c -o main.i)

  • 文件包含复制 将源文件中一"#include"格式包含的文件复制到编译的源文件中
  • 宏定义替换 用实际的值替换用"#define"定义的字符串
    __DATE__:当前源程序的创建日期。
    __FILE__:当前源程序的文件名称(包括盘符和路径)。
    __LINE__:当前被编译代码的行号。
    __STDC__:返回编译器是否位标准C,若其值为1表示符合标准C,否则不是标准C.
    __TIME__:当前源程序的创建时间。
  • 决定编译代码 根据"#if"条件决定需要编译的实际代码
  • 删除注释 行注释和块注释

2,编译(gcc -S main.i -o main.s)

  • 对预处理过后的文件进行一系列的词法分析,语法分析,语义分析以及进行相关的优化,生成相应的汇编代码文件

3,汇编(gcc -c main.c -o main.o)

  • 将编译过的汇编代码翻译成目标机器指令的过程

4,链接(ld)

  • 将不同部分的代码和数据收集和组合成为一个单一文件的过程,将相关目标指令文件链接,使其成为一个整体可以被OS执行
  • 连接器ld将各个目标文件组装在一起,解决符号依赖,库依赖关系,并生成可执行文件

相关文章

  • 【初识C语言】编译过程

    C语言编译过程 认识C编译执行过程,是C学习的开端。 我们来简单说C语言从编码编译到执行要经历一下过程: C源代码...

  • C语言编译过程详解

    C语言编译过程详解

  • 【C】C语言编译过程

    1,编译预处理(gcc -E main.c -o main.i) 文件包含复制 将源文件中一"#include"格...

  • C语言的编译和执行过程

    没有系统的学过C语言,为了了解java编译流程。先简单的略过了一下C语言的编译过程。 C语言在Linux系统下编译...

  • C语言编译 - 编译过程

    一、C语言编译过程简介: 预处理:替换 编译:生成目标文件的汇编文件 汇编:生成目标文件的二进制文件 连接:生成可...

  • C语言编译过程

    示例代码 a.c head.h head.c 预处理 处理关于 “#” 的指令 删除#define,展开所有宏定义...

  • C语言编译过程

    写在前面 对于C语言,我们大家可能不陌生。工作中经常会使用到,我们在工作中写代码,其中的编译和执行过程都是交给ID...

  • C语言编译过程

    预处理(Pre-Processing) hello.c -> hello.i gcc -E hello.c -o ...

  • C语言程序内存布局

    C语言笔记之02-C语言程序内存布局 我们知道C语言的编译过程分为:预处理-编译-汇编-链接-生成可执行文件,而这...

  • 面试常问C++基础

    有关语言基础: c/c++程序的编译过程(GCC的编译流程) 强类型语言 VS 弱类型语言 数组和指针的区别 字符...

网友评论

      本文标题:【C】C语言编译过程

      本文链接:https://www.haomeiwen.com/subject/xduddttx.html