c++ 编译过程
c++ 编译过程介绍

本文将对以下程序使用 g++ 进行编译,去讲述 c++ 的编译过程。
// hello.cpp
#include <iostream>
#define PI 3.14
int main(){
std::cout << "Hello PI :" << PI << std::endl;
getchar();
return 0;
}
一、预处理(Preprocess)
shell 命令:
$ g++ -E hello.cpp -o hello.ii
预处理阶段做了什么呢?
预处理主要对预处理指令做出处理,例如对 #define 的替换,插入 #include 的头文件等操作。
可以看到我们定义的常量因为是预处理指令,被替换掉了:

二、编译(Compile)
shell 命令:
$ g++ -S hello.ii -o hello.s
编译阶段做了什么呢?
编译将预处理后的代码文件“翻译”成汇编语言的文件
三、汇编(assemble)
shell 命令:
$ g++ -C hello.s -o hello.o
汇编阶段做了什么呢?
汇编将汇编语言文件“翻译”成机器代码的二进制文件
四、链接(link)
shell 命令:
$ g++ -O hello.s -o hello.exe
链接阶段做了什么呢?
链接就是把每个源代码独立编译后的结果,然后按照它们的要求将它们组装起来,链接主要解决的是源代码之间的相互依赖问题。
写完了
以上就是本文全部内容,如有错误,请直接联系我。

浙公网安备 33010602011771号