VS预编译头文件(关于error c1083的问题解决)

报错

  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,也可以自定义)

 

参考链接:C++预编译头文件_风生水起-CSDN博客_c++预编译头文件

posted @ 2022-02-24 09:21  hik_wxy  阅读(749)  评论(0)    收藏  举报