VC++程序编译链接的原理与过程

简介: 我们在EX10这个工程中,选择菜单中「Build」→「Rebuild All」,重新编译所有的工程文件,可以看到如下输出:     从这个输出中,我们可以看到可执行程序EX10.exe的产生,经过了两个步骤:首先,C++编译器对工程中的三个源文件fish.cpp、animal.cpp单独进行编译(Compiling…)。

我们在EX10这个工程中,选择菜单中「Build」→「Rebuild All」,重新编译所有的工程文件,可以看到如下输出:

VC++程序编译链接的原理与过程

    从这个输出中,我们可以看到可执行程序EX10.exe的产生,经过了两个步骤:首先,C++编译器对工程中的三个源文件fish.cpp、animal.cpp单独进行编译(Compiling…)。在编译时,先由预处理器对预处理指令(#include、#define和#if)进行处理,在内存中输出翻译单元(一种临时文件)。编译器接受预处理的输出,将源代码转换成包含机器语言指令的三个目标文件(扩展名为obj的文件):EX10.obj、fish.obj、animal.obj.注意,在编译过程中,头文件不参与编译;在EX10工程的Debug目录下,我们可以看到编译生成的obj文件。接下来是链接过程(Linking…),链接器将目标文件和你所用到的C++类库文件一起链接生成EX10.exe.整个编译链接的过程如图2.18所示。

    好了,到此C++的知识就讲解完毕了。当然C++的内容还有很多,但这一章的内容,对于我们从事VC++开发已经足够了,还有部分C++内容,会在后面的章节中讲解。休息一下,然后继续我们的VC++之旅。

目录
相关文章
|
9天前
|
编译器 C++
《Effective C++ 改善程序与设计的55个具体做法》 第一章 笔记
《Effective C++ 改善程序与设计的55个具体做法》 第一章 笔记
|
11天前
|
存储 自然语言处理 安全
C++ STL标准库 《string原理与实战分析》
C++ STL标准库 《string原理与实战分析》
16 0
|
1月前
|
存储 编译器 C++
C++程序变量存储类别:深入理解与应用
C++程序变量存储类别:深入理解与应用
39 1
|
1月前
|
C++
C++程序标准输出流
C++程序标准输出流
27 1
|
1月前
|
C++
C++程序返回指针值的函数
C++程序返回指针值的函数
25 1
|
1月前
|
存储 程序员 C++
C++程序局部变量:生命周期与作用域的探讨
C++程序局部变量:生命周期与作用域的探讨
26 1
|
4天前
|
编译器 C++
C++:继承性_程序
C++:继承性_程序
8 1
|
8天前
|
存储 算法 程序员
【C++进阶】深入STL之vector:构建高效C++程序的基石
【C++进阶】深入STL之vector:构建高效C++程序的基石
15 1
|
9天前
|
编译器 C++
《Effective C++ 改善程序与设计的55个具体做法》 第二章 构造/析构/赋值运算 笔记
《Effective C++ 改善程序与设计的55个具体做法》 第二章 构造/析构/赋值运算 笔记
|
10天前
|
大数据 C++ 索引
C++ STL标准库 《vector向量原理与实战分析》
C++ STL标准库 《vector向量原理与实战分析》
12 0