本文同时发布于我的个人博客 链接
当我们学习了C++的语法以及种种特性之后,可能要开始做一个项目。但是一个C++的项目究竟是怎么组成的呢?当我们用Visual Studio新建一个项目时,里面的cpp文件和项目究竟是怎样的关系?这篇文章就是为了解答这些问题。我们将解释项目、解决方案、库等各种术语的含义。
首先要知道,C++从源文件到可执行文件的一个基本流程。C++的源文件,要通过预处理、编译、链接三个步骤,才能得到可执行的文件。这个过程中涉及到了预处理器、编译器、链接器。
源文件通过预处理和编译得到的是目标文件(Object file)。一堆目标文件链接得到的是可执行文件(executable)。
1.源文件、头文件、翻译单元
C++程序由源文件(source file)组成。常见的扩展名为.c、.cc、.cxx、.cpp。编译器负责翻译每个源文件至机器码,每个源文件被称作一个翻译单元(translation unit)。
头文件(head file)通常用于多个翻译单元之间分享信息。头文件不会被编译。C++预处理器(preprocessor)预先把每个#include语句替换为相应的头文件内容,然后再由编译器处理。