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

上一篇:开放 妥协 灰度 渺小 包容 | 不确定性 vs. 安全感


下一篇:就你叫多线程啊--1、程序VS进程