本文同时发布于我的个人博客 链接
当我们学习了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语句替换为相应的头文件内容,然后再由编译器处理。
2.程序库、可执行文件及动态链接库
翻译单元编译后,得到的是目标文件(object file),储存机器码。这些机器码:
- 可重定位的(relocatable):未决定代码的内存地址
未链接的(unlinked):未解决的外部函数参考,以及翻译单元外定义的全局数据。
程序库(lib

最低0.47元/天 解锁文章
1777

被折叠的 条评论
为什么被折叠?



