VS2015+Qt5.9.1编译报错:Moc系统找不到指定路径,error MSB6006 cmd.exe 已退出,代码为3 -- 完美解决

转载自:https://blog.csdn.net/libaineu2004/article/details/77574341

笔者在msbuild编译qt界面文件会出现Moc'ing文件,系统找不到指定路径问题。

点击“生成解决方案 F7”会报错:

Moc' ing ***.h

系统找不到指定的路径。

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(171,5): error MSB6006 cmd.exe 已退出,代码为3。

上述错误提示是因为MSBuild找不到Qt的moc.exe所在路径,从而导致预编译Q_OBJECT文件失败。 根据工程在本地VS上能否编译通过,分为两种情况: 

1、若无法编译通过,则Qt类库或者Qt Visual Studio Add-in插件安装有问题,需重新安装。 

2、若无法编译通过,则是工程的Qt类库路径($QTDIR)与本地VS配置的Qt类库路径不相同,打开工程路径下的工程配置文件xxx.vcxproj.user,可以观察和分析QTDIR的路径。

解决方案如下:

方案1、不理会它,直接点击“开始执行(不调试) Ctrl+F5”.原因是ui_window.h不能识别,就不用理会 ,直接点击运行 然后 ui_window.h就会自动生成了.下次再编译就好了.

方案2、找到VS2015的解决方案资源管理器,右键工程项目,弹出菜单,点击“convert project to QMake generated project”,此时工程文件xxx.vcxproj.user会发生变化。

xxx.vcxproj.user举例如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  3. <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
  4. <LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH) </LocalDebuggerEnvironment>
  5. <QTDIR>C:\Qt\Qt5.9.1\5.9.1\msvc2015 </QTDIR>
  6. </PropertyGroup>
  7. <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
  8. <LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH) </LocalDebuggerEnvironment>
  9. <QTDIR>C:\Qt\Qt5.9.1\5.9.1\msvc2015 </QTDIR>
  10. </PropertyGroup>
  11. </Project>

其中<QTDIR>C:\Qt\Qt5.9.1\5.9.1\msvc2015</QTDIR>convert project...之后工具自动添加的。如果自动添加失败,程序员可以手动添加,分别新增Debug|Win32和Release|Win32下QTDIR的路径值,使其与本地VS配置的Qt类库路径相同。 重新编译后即可。

笔者分别使用方案1和2,成功解决!1若不行咱就用2!

猜你喜欢

转载自blog.csdn.net/cyem1/article/details/80832440
今日推荐