C ++应用程序的编译过程?

时间:2014-01-31 02:41:37

标签: c++ compiler-construction compilation

我已经编程了2年,在处理编译过程时总是遇到困难。 我在工程学期间没有学过计算机科学,但是必要性驱使我学习C ++。 我尝试从一些博客中理解编译过程,但它们总是使用我无法理解的语言。 所以我在这个网站上搜索了一个类似的问题,但没有找到。 所以我想知道.cpp中的文本是如何转换为二进制可执行文件的?

1 个答案:

答案 0 :(得分:1)

基本上,预处理器首先使用简单的文本替换来解析所有#includes#defines。然后,编译器为每个.cpp文件创建一个编译单元,除了共享数据和函数之间的“连接”或链接之外,它几乎将所有内容都归结为机器代码。对于执行的速度和/或空间可以有许多级别的优化。对所有.cpp文件重复此操作。最后,链接阶段将所有这些编译单元和它们一起使用的库绑定到一个可执行文件中。