一、问题描述
vs2019更新完16.7.3版本后在工程添加Qt类,编译如下提示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200912150227277.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMzOTQ1NTY=,size_16,color_FFFFFF,t_70#pic_center)
知道是”stdafx.h“的位置不对,但是不清楚默认生成的moc文件怎么会把stdafx.h放在第二句,如下所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200912150406428.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMzOTQ1NTY=,size_16,color_FFFFFF,t_70#pic_center)
二、分析和解决
以前老的工程文件是可以编译通过的。但是这次新的不成。所以逐个比对.h文件的属性设置。发现在强制包含(force Include)里面老的包含两个路径,新的只有”stdafx.h“.
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200912150725614.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMzOTQ1NTY=,size_16,color_FFFFFF,t_70#pic_center)
将%(Filename)%(Extension)
添加进去后解决。
三、反思
怀疑是qt的插件没有随着vs版本的更新做对应的适配,导致这样的问题。