c++的文件也是先从.cpp -> .obj -> .exe 的。 
也就是在你按下"工程"-“输出制作文件”的那一瞬间. 
在C++中会有很多.cpp(即源文件相当于汇编里的.asm)文件,它们都编译为.obj文件,这一步叫做编译; 
然后从.obj->.exe就叫做连接,顾名思义就是将所有的.obj都连在一起变成一个.exe 
所以讲和汇编基本是一样的。 
那个.mak文件是记录每一个.cpp文件的最后修改时间的。为什么要这样做呢? 
比如 我们有10个.cpp文件 分别叫做 
a1.cpp a2.cpp a3.cpp ..... a10.cpp 
我们在7点种的时候编译了一下于是我们有了 
a1.obj a2.obj a3.obj ..... a10.obj 
然后呢我们连接就有了 a.exe文件了 
好了,我们在10点钟的时候发现了a.exe有bug(错误),所以我们又要修改程序了。 
但是我们只修改了a10.cpp这个文件就搞定了bug. 
然后我再编译 
从a1.cpp 到 a1.obj 
a2.cpp 到 a2.obj 
.... 
a10.cpp到 a10.obj 
看上去是正确的,实际上,并不对。 
其实a1.cpp 到 a1.obj,a2.cpp到a2.obj都是没有用的。 
我们只要a10.cpp到a10.obj就行了,其他的.cpp文件完全没有必要再编译为.obj了,因为我们并没有修改它们。 
但是我们是怎么知道没有去修改这些文件呢,在.mak中就有方法实现。 
每个cpp文件的最后修改时间都记录在mak中。 
在编译时就会发现我们的a10.cpp在10点的时候被改过,于是就直接编译a10.cpp文件成为a10.obj这样比第一次编译的速度会快很多。 
最后再连接成为一个a.exe文件.
cpp文件生成.exe文件
发帖者
Gifts_show



















0 评论:
发表评论