C++里源代码一般分为.h文件和.cpp文件,编译生成exe的过程中,分为了3个步骤:编译预处理、分别编译生成目标文件、链接。编译预处理是编译器对cpp文件中头文件、宏进行处理,#include是一个宏定义,编译器会把头文件包含的内容替换在此处,而不产生任何副作用,这样便实现了头文件下的函数、变量、宏、类等在被编译的cpp文件中的声明,但并不包含定义,宏就是进行文本替换,如#define就是一个宏定义;C++支持“separate compile"分离编译,分别对各个cpp文件生成目标文件,有的cpp文件是某个头文件的实现(implementation),有的是包含有main函数的源文件,后者中如果调用了其他头文件中声明的函数,在生成目标文件时,并没有包含有该函数的实现,而是把这些函数组织在一起,通过链接的过程去寻找定位源代码实现文件;链接是把各个目标文件结合在一起,保证他们之间的依赖关系。
VS 下程序编译的过程发生了什么
最新推荐文章于 2022-08-29 16:24:18 发布