预编译头文件的问题解答(Problem solving for precompiled header files).docVIP

预编译头文件的问题解答(Problem solving for precompiled header files).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
预编译头文件的问题解答(Problem solving for precompiled header files)

预编译头文件的问题解答(Problem solving for precompiled header files) 致命错误:无法打开预编译头文件中文对照 遇到致命错误:无法打开中文对照的预编译头文件,说找不到.pch文件的问题,网上一般给出的解决方案是:工程的属性里:使用选项使用预编译头(/余)。这其实是为了避免问题而不用的方式,相当于因为刀会伤手,就不用刀切菜,改用手掰。 预编译头文件(预编译头)头文件还是很重要,如果工程很大,头文件很多,而有几个头文件又是经常要用的,那么 1。把这些头文件全部写到一个头文件里面去,比如写到Preh。H(stdafx.h。H) 2。写一个Preh。C(stdafx. cpp),里面只一句话:#包括“史前。” 3。对于Preh。C,在项目设置里面设置创建预编译头,对于其他。C文件,设置使用预编译头文件 预编译头文件效果还是很明显的,不用预编译头,编译一次的时间都可以去上个厕所了,用预编译头,编译的时候,可以站起来伸个懒腰,活动活动就差不多啦 ---------转载的文章---------- 预编译头的概念: 所谓的预编译头就是把一个工程中的那一部分代码,预先编译好放在一个文件里(通常是以.pch为扩展名的),这个文件就称为预编译头文件这些预先编译好的代码可以是任何的C / C++代码--------甚至是内联的函数,但是必须是稳定的,在工程开发的过程中不会被经常改变。如果这些代码被修改,则需要重新编译生成预编译头文件。注意生成预编译头文件是很耗时间的。同时你得注意预编译头文件通常很大,通常有6-7m大。注意及时清理那些没有用的预编译头文件。 也许你会问:现在的编译器都有时间戳的功能,编译器在编译整个工程的时候,它只会编译那些经过修改的文件,而不会去编译那些从上次编译过,到现在没有被修改过的文件。那么为什么还要预编译头文件呢?答案在这里,我们知道编译器是以文件为单位编译的,一个文件经过修改后,会重新编译整个文件,当然在这个文件里包含的所有头文件中的东西(如宏、Preprocesser)都要重新处理一遍的预编译头文件保存的正是这部分信息以避免每次都要重新处理这些头文件。VC。 预编译头的作用: 根据上文介绍,预编译头文件的作用当然就是提高编译速度了,有了它你没有必要每次都编译那些不需要经常改变的代码。编译性能当然就提高了。 预编译头的使用: 要使用预编译头,我们必须指定一个头文件,这个头文件包含我们不会经常改变的代码和其他的头文件,然后我们用这个头文件来生成一个预编译头文件(.pch文件)想必大家都知道StdAfx. H这个文件。很多人都认为这是VC提供的一个”系统级别”的,编译器带的一个头文件。其实不是的,这个文件可以是任何名字的。我们来考察一个典型的由AppWizard生成的MFC基于对话框的程序的预编译头文件。(因为AppWizard会为我们指定好如何使用预编译头文件,默认的是StdAfx. H,这是VC起的名字我们会发现这个头文件里包含了以下的头文件): #包括 Afxwin. h // MFC的核心和标准部件 #包括 afxext。h // MFC扩展 #包括 afxdisp。h // MFC自动化类 #包括 afxdtctl。h // MFC Internet Explorer 4common控件支持 #包括 afxcmn。” 这些正是使用MFC的必须包含的头文件,当然我们不太可能在我们的工程中修改这些头文件的,所以说他们是稳定的。 那么我们如何指定它来生成预编译头文件。我们知道一个头文件是不能编译的。所以我们还需要一个CPP文件来生成.pch文件。这个文件默认的就是stdafx. cpp。在这个文件里只有一句代码就是:#包括“stdafx。H”。原因是理所当然的,我们仅仅是要它能够编译而已?D?D?D也就是说,要的只是它的。CPP的扩展名。我们可以用/ YC编译开关来指定stdafx. cpp来生成一个.pch文件,通过/ FP编译开关来指定生成的PCH文件的名字。打开项目-设置- C / C++对话框。把范畴指向预编译头。在左边的树形视图里选择整个工程项目选项(右下角的那个白的地方)可以看到/ FP”调试/ PCH PCH。”这就是指定生成的.pch文件的名字,默认的通常是PCH(我的示例工程名就是PCH)。 然后,在左边的树形视图里选择stdafx. cpp。/这时只能选一个CPP文件!这时原来的项目选项变成了源文件选项(原来是工程,现在是一个文件,当然变了)。在这里我们可以看到/ YC开关,/ YC的作用就是指定这个文件来创建一个PCH文件。/ YC后面的文件名是那个包含了稳定代码的头文件,一个工程里只能有一个文件的可以有YC开关。VC就根据这个选项把stdafx. cpp编

您可能关注的文档

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档