您的位置:首页 > 编程语言 > Qt开发

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

2017-08-25 15:17 1481 查看
笔者在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举例如下:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
<QTDIR>C:\Qt\Qt5.9.1\5.9.1\msvc2015</QTDIR>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
<QTDIR>C:\Qt\Qt5.9.1\5.9.1\msvc2015</QTDIR>
</PropertyGroup>
</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!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt MSB6006 cmd moc 路径
相关文章推荐