C++中怎么才可以将.cpp文件生成.exe文件?
比如说汇编语言,将.asm文件汇编成.obj,再生成.exe那C++怎么办呢??还有,C++中按下“工程”-“输出制作文件”生成的.mak又是什么意思??...
比如说汇编语言,将.asm文件汇编成.obj,再生成.exe
那C++怎么办呢??
还有,C++中按下“工程”-“输出制作文件”
生成的.mak又是什么意思?? 展开
那C++怎么办呢??
还有,C++中按下“工程”-“输出制作文件”
生成的.mak又是什么意思?? 展开
4个回答
展开全部
呵呵,其实你都知道了问题的答案了。
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文件.
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文件在c++中运行一下就有exe文件自动生成.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
还不是一样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询