【只争朝夕】

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

以前都可以成功编译的项目,今天只添加了一个对话框,就不行了,

提示“C1803 预编译头文件来自编译器的其他版本,或者预编译头为 C++ 而在 C 中使用它(或相反)”

这是什么毛病呢?

上网搜一下,发现让我在刚添加的对话框cpp文件属性里设置为“不使用预编译头”,

 

改完之后确实编译成功了,

可是我手贱啊,又打开了项目里一个别的文件,然后一编译,又出现这个错误了!

难道也要把这个文件设置成不使用预编译头?

把它也设置为不使用,果然又编译成功了!

这是什么道理?难道我每打开一个文件都要把这个打开过的文件设置成不使用预编译头?

那我不如把整个项目的属性都设置成不使用预编译头得了!这么设置完发现确实可以。

但是为啥有预编译头这么一个东西呢?查一查发现:使用预编译头可以将公用的文件提前编译好,放到一个pch文件里,

因为这些公用的文件不经常更改,就不用每次编译都浪费时间编译他们,直接读取pch文件即可,这样可以提高编译速度。

也就是说我要是禁用了项目的预编译头,那么每次编译时肯定会慢。

那么就知道这个问题出在哪里了,肯定是VS升级之后,以前编译的pch文件,现在不能用了,那么把项目清理一下,

重新编译一遍即可。事实证明这么做完全正确。

 

posted on 2021-02-20 15:03  【只争朝夕】  阅读(1680)  评论(0编辑  收藏  举报