一、问题描述

在git导入VS2017+Qt的工程后编译如下报错:

Parse error at "IID"
error 1: moc (D:\Qt\Qt5.12.3\5.12.3\msvc2017\bin\moc.exe)

二、问题分析

导入的项目在另外电脑上是可以编译的,也就是说可能配置有问题。代码是没错误的。
极有可能是项目属性设置的问题。一开始以为缺少qt的依赖库目录。但是在属性里面手动添加后没有反应。还是提示moc错误。
和另外一个工程属性进行了比较,发现属性里面默认有Qt project Settings的栏目。右边有一个format version:3.1的选项,在其他工程目录中是没有的。所以怀疑是通过新的Qt vs addin插件生产的工程属性。
在这里插入图片描述

三、问题解决

  1. 查看VS菜单栏的Qt Vs Tool,发现版本是qt-vsaddin-msvc2017-2.4.3-rev.07。
    在这里插入图片描述
  2. 打开qt vs Tool的官方下载地址https://download.qt.io/official_releases/vsaddin/发现最新版本为2.4.3,但是后面没有rev.07这样的字眼。怀疑当时安装了development的版本。
    在这里插入图片描述
  3. 重新下载发布的2.4.3的版本,卸载老的rev.07的版本。并且重新编译工程成功。

四、经验总结

如果遇到类似的报错,可以检测工程属性并检测qt vs tool,更新qt-vsaddin进行解决。同时qt的插件尽量使用official的版本,不要使用development的版本。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐