使用Visual Studio 2017编译libQGLViewer时遇<QtMoc>属性识别错误求助
解决VS2017编译libQGLViewer时
<QtMoc>属性无法识别的问题 我之前在类似环境下也碰到过这个错误,本质是Qt VS Tools和VS版本、qmake生成的项目文件格式不兼容导致的,给你几个可行的解决办法:
检查并调整Qt VS Tools版本
你安装的是VS2017最新扩展,但新版本的Qt VS Tools可能对旧版VS(v15.6.5属于比较早的VS2017版本)的项目元素支持有变化。打开VS的「扩展和更新」,找到已安装的Qt VS Tools,尝试降级到和VS2017 v15.6.5匹配的版本(比如Qt VS Tools 1.5.x系列,这个版本对早期VS2017兼容性更好)。手动修改vcxproj文件修复
<QtMoc>节点
旧版本的Qt VS Tools不识别带ConfigName属性的<QtMoc>元素,你可以直接编辑QGLViewer.vcxproj文件,把原来的写法调整为按配置分组的格式:<!-- 替换原来带ConfigName的QtMoc行 --> <ItemGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <QtMoc Include="camera.h" /> </ItemGroup> <ItemGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <QtMoc Include="camera.h" /> </ItemGroup>如果这个头文件在所有配置下都需要moc处理,甚至可以简化为:
<QtMoc Include="camera.h" />保存后重新打开项目,错误应该就会消失。
用qmake重新生成项目文件
有时候直接通过VS加载.pro文件生成的vcxproj会有格式问题,你可以手动用qmake重新生成:- 打开Qt 5.10.1对应的「VS 2017 x64 Native Tools Command Prompt」(或者在VS的Qt菜单里打开Qt Command Prompt)
- 切换到libQGLViewer的目录
- 执行命令:
qmake -tp vc libQGLViewer-2.7.1.pro
生成新的vcxproj后再用VS打开,大概率能解决这个属性识别问题。
确认Qt组件安装正确
最后再检查下Qt 5.10.1的安装组件,确保你勾选了「MSVC 2017 64-bit」的相关组件,不要误装成MSVC 2015或者其他平台的版本,组件不匹配也可能导致项目生成异常。
内容的提问来源于stack exchange,提问作者somebodyrs
相关产品推荐
相关产品推荐

