刚刚使用MSVS 2017和Qt5.9.1配置了新的Windows环境
构建示例项目bars
时遇到错误
Project ERROR: Cannot run compiler 'cl'. Maybe you forgot to setup the environment?
使用mingw构建并运行良好。
我尝试在 qmake 之前添加自定义构建步骤
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvarsall.bat" amd64
但得到了相同的结果。在cmd
中,此命令正常工作。在cl.exe
可以到达之后。
所有工具集都是由Qt自动找到的,似乎是正确的
**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26730.16
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
C:\Users\Admin\source>"C:\Devel\Qt\Qt5.9.1\5.9.1\msvc2017_64\bin\qmake.exe" C:\Devel\Qt\Qt5.9.1\Examples\Qt-5.9.1\datavisualization\bars\bars.pro -spec win32-msvc
C:\Users\Admin\source>nmake
Microsoft (R) Program Maintenance Utility Version 14.11.25508.2
Copyright (C) Microsoft Corporation. All rights reserved.
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\bin\HostX86\x86\nmake.exe" -f Makefile.Release
Microsoft (R) Program Maintenance Utility Version 14.11.25508.2
Copyright (C) Microsoft Corporation. All rights reserved.
cl -c -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -O2 -MD -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -EHsc -DUNICODE -DWIN32 -DQT_NO_DEBUG -DQT_DATAVISUALIZATION_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DNDEBUG -I..\..\..\Devel\Qt\Qt5.9.1\Examples\Qt-5.9.1\datavisualization\bars -I. -I../../../include -I..\..\..\Devel\Qt\Qt5.9.1\5.9.1\msvc2017_64\include -I..\..\..\Devel\Qt\Qt5.9.1\5.9.1\msvc2017_64\include\QtDataVisualization -I..\..\..\Devel\Qt\Qt5.9.1\5.9.1\msvc2017_64\include\QtWidgets -I..\..\..\Devel\Qt\Qt5.9.1\5.9.1\msvc2017_64\include\QtGui -I..\..\..\Devel\Qt\Qt5.9.1\5.9.1\msvc2017_64\include\QtANGLE -I..\..\..\Devel\Qt\Qt5.9.1\5.9.1\msvc2017_64\include\QtCore -Irelease -I..\..\..\Devel\Qt\Qt5.9.1\5.9.1\msvc2017_64\mkspecs\win32-msvc -Forelease\ @C:\Users\Admin\AppData\Local\Temp\nm6ED7.tmp
main.cpp
graphmodifier.cpp
Generating Code...
cl -c -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -O2 -MD -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -EHsc -DUNICODE -DWIN32 -DQT_NO_DEBUG -DQT_DATAVISUALIZATION_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DNDEBUG -I..\..\..\Devel\Qt\Qt5.9.1\Examples\Qt-5.9.1\datavisualization\bars -I. -I../../../include -I..\..\..\Devel\Qt\Qt5.9.1\5.9.1\msvc2017_64\include -I..\..\..\Devel\Qt\Qt5.9.1\5.9.1\msvc2017_64\include\QtDataVisualization -I..\..\..\Devel\Qt\Qt5.9.1\5.9.1\msvc2017_64\include\QtWidgets -I..\..\..\Devel\Qt\Qt5.9.1\5.9.1\msvc2017_64\include\QtGui -I..\..\..\Devel\Qt\Qt5.9.1\5.9.1\msvc2017_64\include\QtANGLE -I..\..\..\Devel\Qt\Qt5.9.1\5.9.1\msvc2017_64\include\QtCore -Irelease -I..\..\..\Devel\Qt\Qt5.9.1\5.9.1\msvc2017_64\mkspecs\win32-msvc -Forelease\ @C:\Users\Admin\AppData\Local\Temp\nm7EF5.tmp
moc_graphmodifier.cpp
link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:release\bars.exe @C:\Users\Admin\AppData\Local\Temp\nm8417.tmp
Qt5DataVisualization.lib(Qt5DataVisualization.dll) : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'x86'
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\bin\HostX86\x86\link.EXE"' : return code '0x458'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\bin\HostX86\x86\nmake.exe"' : return code '0x2'
Stop.
C:\Users\Admin\source>
链接错误。 但cl.exe
已找到。
答案 0 :(得分:2)
所以答案是尝试重新安装/修改组件,包括QtCreator本身。
答案 1 :(得分:2)
在无法在工作笔记本电脑和私人PC上使用Qt一年之后,我 最终 想出了解决方法(以我为例):
我在用户目录中找到文件view.py
(由于this barely related SO answer),该文件一直将%HOMEPATH%\cmd_auto_run.cmd
变量重置为设置的字符串,从而覆盖了我对文件所做的任何更改系统环境变量。该文件的路径是在Windows注册表中PATH
下设置的
打开文件后,我只是在HKCU\SOFTWARE\Microsoft\Command Processor\Autorun
符号后面添加了%PATH%;
,并确保删除了此后定义的所有重复路径。之后,该行看起来像这样:
=
然后,我将以下路径添加到名为SET "PATH=%PATH%;C:\Users\MYUSER\nvmw\nodejs\v15.2.1"
的系统环境变量中,用于VS Build Tools(cl.exe必需-为安全起见,我添加了2017和2019)和Windows 10 SDK (需要rc.exe):
PATH
然后我重新启动Qt,它再次找到了项目的所有文件,并且可以像以前一样编译它。
这是Windows的Node.js版本管理器NVMW的问题。 2015年有一个issue on a repo on GitHub,但尚未修复,主仓库已存档。这是有史以来最令人沮丧的事情,可能我花了超过20个小时积极地修复它,因此我希望我可以帮助像我一样一直在挣扎的人。
答案 2 :(得分:1)
我有一个类似的案例,通过将cl.exe的路径添加到路径环境变量来解决:
set path=%path%;%qtdir%\bin;"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.12.25827\bin\Hostx64\x64"
set QMakeSpec=win32-msvc
qmake -tp vc
也许另一个cl.exe干扰了吗?
答案 3 :(得分:1)
我在使用 VC2019 和 Qt 6.0.2 的 Windows 10 上遇到了同样的问题。 当我开始时
<块引用>开始->Visual Studio 2019->x64 Native Tools 命令提示符
我在控制台窗口中看到一条错误消息,内容类似于
"\ is syntactically not correct"
这是由系统设置->系统->扩展中设置的%path%变量末尾的反斜杠引起的... 我删除了这个反斜杠,然后“x64 Native Tools Command prompt”打开没有错误,并且在重新启动没有错误构建的qtCreator项目后。
不幸的是,在修复此问题后,我无法再重现它。
答案 4 :(得分:0)
只需重新启动即可。它帮助了我。可能完成了Visual Studio或Qt的安装。