C/C++ 中的编译/链接过程如何工作?

cc++server side programmingprogramming更新于 2025/4/30 17:52:17

C++ 程序的编译包括三个步骤 −

  • 预处理 − 简单来说,C 预处理器只是一个文本替换工具,它指示编译器在实际编译之前进行必要的预处理。它处理预处理指令,如 #include、#define 等。
  • 编译 − 编译发生在预处理文件上。编译器解析纯 C++ 源代码并将其转换为汇编代码。这反过来又调用汇编程序,将汇编代码转换为机器代码(二进制)作为对象文件。这些对象文件可以引用未定义的符号。除非源代码格式不正确,否则编译器不会给出错误。语法错误、失败的过载解析错误等都发生在此步骤中。还请注意,这些目标文件也可以用作静态库。
  • 链接 − 链接器从编译器生成的目标文件中生成最终的编译输出。此输出可以是共享(或动态)库或可执行文件。它通过将未定义的引用替换为正确的地址来链接目标文件。这些符号应在其他目标文件或库中定义。如果它们是在标准库以外的库中定义的,则需要将它们作为参数显式传递给编译器,以便可以找到并链接它们。

相关文章