- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
预编译头stdafx
预编译头文件 Stdafx.h 详细解读
今天在改一个很大的程序,慢慢看,慢慢改。突然发现一个.c 文件,里面什么也
没有,
就几个头文件,我一看,我靠,这不是把简单的问题搞复杂了吗,随手删掉那个
c 文件。
结果不能编译了,我靠:
fatal error C1083: Cannot open precompiled header file: \Debug/v13_3.pch\:
No such file or directory
怎么 rebuild all 都不行。
上网查了一下,才搞懂了:
----------------总结------
如果工程很大,头文件很多,而有几个头文件又是经常要用的,那么
1。把这些头文件全部写到一个头文件里面去,比如写到preh.h
2 。写一个preh.c ,里面只一句话:#include preh.h
3 。对于preh.c ,在project setting 里面设置 creat precompiled headers,对于其他
.c 文件,设置 use precompiled header file
//
哈哈
我试了一下,效果很明显,不用 precompiled header ,编译一次我可以去上个厕
所,用
precompiled header ,编译的时候,我可以站起来伸个懒腰,活动活动就差不多啦
---------转载的文章----------
预编译头的概念:
所谓的预编译头就是把一个工程中的那一部分代码,预先编译好放在一个文件里
(通常是
以.pch 为扩展名的) ,这个文件就称为预编译头文件这些预先编译好的代码可以
是任何的
C/C++代码甚至是 inline 的函数,但是必须是稳定的,在工程开发的过程
中不会
被经常改变。如果这些代码被修改,则需要重新编译生成预编译头文件。注意生
成预编
译头文件是很耗时间的。同时你得注意预编译头文件通常很大,通常有 6-7M 大。
注意及
时清理那些没有用的预编译头文件。
也许你会问:现在的编译器都有 Time stamp 的功能,编译器在编译整个工程的
时候,它
只会编译那些经过修改的文件,而不会去编译那些从上次编译过,到现在没有被
修改过
的文件。那么为什么还要预编译头文件呢?答案在这里,我们知道编译器是以文
件为单
位编译的,一个文件经过修改后,会重新编译整个文件,当然在这个文件里包含
的所有
头文件中的东西(.eg Macro, Preprocesser )都要重新处理一遍。VC 的预编译头
文件
保存的正是这部分信息。以避免每次都要重新处理这些头文件。
预编译头的作用:
根据上文介绍,预编译头文件的作用当然就是提高编译速度了,有了它你没有必
要每次
都编译那些不需要经常改变的代码。编译性能当然就提高了。
预编译头的使用:
要使用预编译头,我们必须指定一个头文件,这个头文件包含我们不会经常改变
的
代码和其他的头文件,然后我们用这个头文件来生成一个预编译头文件(.pch 文
件)
想必大家都知道 StdAfx.h 这个文件。很多人都认为这是 VC 提供的一个“系统级
别” 的
,编译器带的一个头文件。其实不是的,这个文件可以是任何名字的。我们来考
察一个
典型的由 AppWizard 生成的 MFC Dialog Based 程序的预编译头文件。(因为
AppWizard
会为我们指定好如何使用预编译头文件,默认的是 StdAfx.h,这是VC 起的名字)。
我们
会发现这个头文件里包含了以下的头文件:
#include afxwin.h // MFC core and standard components
#include afxext.h // MFC extensions
#include afxdisp.h // MFC Automation classes
#include afxdtctl.h // MFC support for Internet Explorer 4
Common Controls
#include afxcmn.h
这些正是使用 MFC 的必须包含的头文件,当然我们不太可能在我们的工程中修
改这些头文
件的,所以说他们是稳定的。
那么我们如何指定它来生成预编译头文件。我们知道一个头文件是不能编译的。
所以我
们还需要一个 cpp 文件来生成.pch 文件。这个文件默认的就是 StdAfx.cpp。在这
个文件
里只有一句代码就是:#include “Stdafx.h” 。原因是理所当然的,我们仅仅是要它
您可能关注的文档
- 2011最新PPT幻灯片演示文稿模板免费下载-coin-stack.ppt
- 雅思写作思路指导之关于城市规划-智课教育出国考试.pdf
- 托福综合写作题目集锦-智课教育旗下智课教育.pdf
- 2011年雅思真题机经壹领教育版.pdf
- 雅思议论文写作核心题目-智课教育出国考试.pdf
- RPM973-H11E2A;中文规格书,Datasheet资料.pdf
- 2012年2月9日雅思G类写作机经考题.pdf
- 微机原理及接口技术(第三章-6).ppt
- 雅思阅读长难句之实例剖析.pdf
- 保密和竟业禁止协议英文样本Sample Confidentiality and Non-compete Agreement.pdf
文档评论(0)