欢迎来到天天文库
浏览记录
ID:16250921
大小:69.50 KB
页数:3页
时间:2018-08-08
《vc编程中遇到的问题及解决方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Cannotopenprecompiledheaderfile:'Debug/test.pch'NosuchfileordirectoryCannotopenprecompiledheaderfile:'Debug/password.pch'Nosuchfileordirectory所谓pch,即precompiledheader在网上搜集了一下,这个错误是预编译文件的设置造成的,有几种可以尝试的途径:1)单独编译StdAfx.cpp2)编译所有(即按Ctrl+F7)3)在工程-设置-c++-最下面的工程选项里去
2、掉××。pch文件4)在工程-设置-c++-在分类里选择预编译头文件,选择自动使用预补偿页眉,或者选择不使用预补偿头如果工程很大,头文件很多,而有几个头文件又是经常要用的,那么1。把这些头文件全部写到一个头文件里面去,比如写到preh.h2。写一个preh.c,里面只一句话:#include"preh.h"3。对于preh.c,在projectsetting里面设置creatprecompiledheaders,对于其他.c文件,设置useprecompiledheaderfile方法一:用记事本打开.dsp文件
3、,找到关于这样一段: SOURCE=.StdAfx.cpp #EndSourceFile #EndGroup #BeginGroup"HeaderFiles" 发现少了一个编译开关的,所以不能生成.pch文件的:加上开关#ADDCPP/Yc"stdafx.h"成如下即可。 SOURCE=.StdAfx.cpp
4、 #ADDCPP/Yc"stdafx.h" #EndSourceFile #EndGroup #BeginGroup"HeaderFiles"方法二:在菜单的“工程”--“设置”里选定工程,如图选择Tab页,在红圈中把u改成c,确定,回到工程中再Ctrl+F7(Compile)一下,就能生产pch文件了,然后再改回上文设置。参考资料:预编译头文件(一般扩展名为
5、.PCH),是把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里。这些预先编译好的代码可以是任何的C/C++代码--甚至可以是inline函数,只它们在整个工程中是较为稳定的,即在工程开发过程中不会经常被修改的代码.。 为什么需要预编译头文件?一言以蔽之:提高编译速度。一般地,编译器以文件为单位编译,如果修改了一工程中的一个文件则所有文件都要重新编译,包括头文件里的所有东西(eg.Macro宏、Preprocessor预处理),而VC程序中,这些头文件中所包括的东西往往是非常大的,编译之将占很长的时
6、间。但它们又不常被修改,是较稳定的,为单独的一个小文件而重新编译整个工程的所有文件导致编译效率下降,因此引入了.PCH文件。 如何使用预编译头文件以提高编译速度?要使用预编译头文件,必须指定一个头文件(.H),它包含我们不会经常修改的代码和其他的头文件,然后用这个头文件(.H)来生成一个预编译头文件(.PCH)VC默认的头文件就是StdAfx.h,因为头文件是不能编译的,所以我们还需要一个.CPP文件来作桥梁,VC默认的文件为StdAfx.cpp,这个文件里只有一句代码就是:#include"StdAfx.h"
7、。接下来要用它生成.PCH文件,涉及到几个重要的预编译指令:/Yu、/Yc、/Yx、/Fp。简单地说: /Yc:是用来生成.PCH文件的编译开关。在Project->setting->C/C++的Category里的PrecompiledHeader,然后在左边的树形视图中选择用来编译生成.PCH文件的.CPP文件(默认即StdAfx.cpp)你就可以看到/Yc这个开关,它表示这个文件编译了以后是否生成.PCH文件(可能/Yc的c表示create)。 /Fp:指令指定生成的.PCH文件的名字及路径(可
8、能/Fp的p代表path)。 /Yu的u即use使用,工程中只要包括了.H文件的文件都会有这个/Yu指令。如果选择自动Automatic...的话则原来为/Yc的地方就换成了/Yx指令。如果选择自动,则每次编译时编译器会看以前有没有生成过.PCH文件,有则不现生成否则就再次编译产生.PCH文件。注意: A:实际上,由Appzard项目向导生成的默认的头文件及CPP
此文档下载收益归作者所有