美文网首页C++
【C/C++】编译过程

【C/C++】编译过程

作者: lndyzwdxhs | 来源:发表于2018-10-25 12:07 被阅读4次

编写的C/C++源代码无法直接运行,需要转换成机器可以理解的可执行目标文件才能执行,这个转换的过程叫做编译与链接。

  • 编译是把文本形式的源文件转化成机器语言形式的目标文件;
  • 链接是把目标文件、操作系统启动代码和使用到的库文件组织在一起形成可执行文件的过程。
编译&链接过程

0x01 预处理 & 预编译【预处理器cpp】

gcc -E test.c > test.i

根据预处理指令来修改源代码(优点:可以用来适应不同的计算机和操作系统)。

  • 宏定义指令
  • 条件编译指令
  • 头文件包含指令
  • 特殊符号识别

预处理阶段并不属于预编译过程

预编译程序所完成的基本上是对源程序的"替换"工作。经过此替换后,生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。这个文件的含义同没有经过预处理的源文件是相同的,但内容有所不同。下一步,此输出文件将作为编译程序的输出而被翻译成为机器指令。

预处理和预编译的区别还不太清楚,查明白了再补充

0x03 编译【编译器egcs】

gcc -o test.s -S test.i
gcc -o test.s -S test.c

0x04 汇编【汇编器as】

gcc -o test.o -c test.c

0x05 链接【链接器ld】

gcc -o test test.o

参考链接:
http://www.cppblog.com/SEMAN/archive/2005/11/30/1440.html

相关文章

  • iOS Runtime实用详解(一)

    基本概念 了解 C/C++编译C/C++编译就是将C/C++的代码映射到相应的机器码,编译过程包括几个部分分别是编...

  • 【C++】gcc编译过程

    【C++】gcc编译过程 C++编译过程主要分为,预处理、编译、汇编、链接四个过程。如下图所示: 第一步:预处理 ...

  • C++编译过程

    C++ 编译过程在介绍编译器之前,先简单地说一下 C++ 的编译过程,以便理解编译器的工作。编译(compilin...

  • C++的编译总结

    一、C++编译过程概述 不管是Linux系统还是Windows系统,C++源文件的编译流程都是一样的,只是编译过程...

  • Unreal 如何编译C++

    1. C++编译 (1)C++编译后生成的文件 以下对生成文件的常见文件进行说明 (2.)C++编译过程 2. U...

  • java编译过程

    1、java编译过程与c/c++编译过程不同java编译程序将java源程序编译成jvm可执行代码--java字节...

  • 【C/C++】编译过程

    编写的C/C++源代码无法直接运行,需要转换成机器可以理解的可执行目标文件才能执行,这个转换的过程叫做编译与链接。...

  • c/c++编译过程

    1、一个C++源文件从文本到可执行文件经历的过程 预处理-->编译-->汇编-->链接 1.1预处理(产生.i文件...

  • C++ 编译过程

    编译的作用 读取源程序(.cpp),进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再转换为机器代码...

  • 3、node的核心模块

    JavaScript核心模块的编译过程; 在编译所有C/C++文件之前,编译程序需要将所有的JavaScript模...

网友评论

    本文标题:【C/C++】编译过程

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