报错
fatal error C1083:cannot open precompield header file 'Debug/*.pch':No such file or dir
原理
- 头文件的编译原理,就是把自己的内容替换掉对应的#include处。头文件的出现,给书写程序带来了极大的便利,但到了windows时代,几乎所有windows程序都要包含windows.h,而它却硕大无比,#include处展开时,编译就很慢。到了mfc时代就更恶劣了。 于是,这些几乎所有cpp都必须包含、且稳定不经常改变(否则要重新预编译)的头文件,被提取出来,只编译一遍,大家都能使用,这就是预编译头。
- 优点:速度大大提高,*.pch就是编译后的预编译头文件;
- 缺点:假定的是所有cpp都使用,因此再编译你的cpp时,就会将预编译头中编译完成的部分加载到内存,此时如果发现你cpp中居然没包含预编译头,就没办法把这部分从内存中请出去,编译失败;
使用
/Yc:即creat,创建预编译头,将你的预编译cpp设置成/Yc;
/Yu:即use,使用预编译头,将你其他cpp设置成/Yu,并在cpp最开头包含你预编译头的h文件(如stdafx.h,也可以自定义)