QtCreator qmake 无法运行编译器'cl'

QtCreator qmake Cannot run compiler 'cl'

刚刚使用 MSVS 2017 和 Qt5.9.1 配置了新的 windows 环境。
构建示例项目时 bars 遇到错误

Project ERROR: Cannot run compiler 'cl'. Maybe you forgot to setup the environment?

使用 mingw build 和 运行 没问题。


我尝试在 qmake

之前添加 自定义构建步骤
"C:\Program Files (x86)\Microsoft Visual Studio17\Professional\VC\Auxiliary\Build\vcvarsall.bat" amd64

但得到了相同的结果。在 cmd 中,此命令工作正常。之后 cl.exe 可达。


所有工具集都是由 Qt 自动找到的,似乎是正确的

这里是截图


更新1。内置 VS 2017 的开发人员命令提示

**********************************************************************
** 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.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 Studio17\Professional\VC\Tools\MSVC.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.9.1\msvc2017_64\include -I..\..\..\Devel\Qt\Qt5.9.1.9.1\msvc2017_64\include\QtDataVisualization -I..\..\..\Devel\Qt\Qt5.9.1.9.1\msvc2017_64\include\QtWidgets -I..\..\..\Devel\Qt\Qt5.9.1.9.1\msvc2017_64\include\QtGui -I..\..\..\Devel\Qt\Qt5.9.1.9.1\msvc2017_64\include\QtANGLE -I..\..\..\Devel\Qt\Qt5.9.1.9.1\msvc2017_64\include\QtCore -Irelease -I..\..\..\Devel\Qt\Qt5.9.1.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.9.1\msvc2017_64\include -I..\..\..\Devel\Qt\Qt5.9.1.9.1\msvc2017_64\include\QtDataVisualization -I..\..\..\Devel\Qt\Qt5.9.1.9.1\msvc2017_64\include\QtWidgets -I..\..\..\Devel\Qt\Qt5.9.1.9.1\msvc2017_64\include\QtGui -I..\..\..\Devel\Qt\Qt5.9.1.9.1\msvc2017_64\include\QtANGLE -I..\..\..\Devel\Qt\Qt5.9.1.9.1\msvc2017_64\include\QtCore -Irelease -I..\..\..\Devel\Qt\Qt5.9.1.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 Studio17\Professional\VC\Tools\MSVC.11.25503\bin\HostX86\x86\link.EXE"' : return code '0x458'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio17\Professional\VC\Tools\MSVC.11.25503\bin\HostX86\x86\nmake.exe"' : return code '0x2'
Stop.

C:\Users\Admin\source>

链接错误。 但是cl.exe找到了。

接下来的步骤一切正常。

  1. 为 QtCreator 设置德古拉风格 :)
  2. 修改 MSVS 安装添加 VC++ 2015.3 v140 桌面工具集 (x86,x64)。

很奇怪。这就是我不喜欢 windows 的原因。它过着自己的生活!

所以答案是尝试REINSTALL/modify个组件,包括QtCreator本身。

我有一个类似的情况,通过将 cl.exe 的路径添加到路径环境变量中解决了:

set path=%path%;%qtdir%\bin;"C:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.12.25827\bin\Hostx64\x64"
set QMakeSpec=win32-msvc
qmake -tp vc

也许另一个 cl.exe 在干扰这里?

只是重启。它帮助了我。可能完成 Visual Studio 或 Qt 的安装。

这是适用于已安装或已经安装 NVMW 的任何人的解决方案:

在我的工作笔记本电脑和私人 PC 上无法使用 Qt 一年之后,我 终于 想出了如何如果您在任何时候为 Windows 安装了 Node.js 版本管理器,请修复它:

我在我的用户目录中找到了文件 %HOMEPATH%\cmd_auto_run.cmd(感谢 ),它一直在不断地将 PATH 变量重置为常量字符串,覆盖我之前所做的任何更改making到系统环境变量。此文件的路径是在 HKCU\SOFTWARE\Microsoft\Command Processor\Autorun
下的 Windows 注册表中设置的 打开文件后,我只是在 = 符号之后添加了一个 %PATH%; ,只是为了确保我删除了之后定义的所有重复路径。之后,该行看起来像这样:

SET "PATH=%PATH%;C:\Users\MYUSER\nvmw\nodejs\v15.2.1"

然后,我将以下路径添加到名为 PATH 的系统环境变量中,用于 VS 构建工具(cl.exe 需要 - 为了安全起见,我添加了 2017 和 2019)和Windows 10 SDK(rc.exe 需要):

C:\Program Files (x86)\Microsoft Visual Studio19\BuildTools\VC\Tools\MSVC.27.29110\bin\Hostx64\x64
C:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.16.27023\bin\Hostx64\x64
C:\Program Files (x86)\Windows Kits\bin.0.19041.0\x64

然后我重新启动 Qt,它再次找到了所有项目的文件,我可以像以前一样编译它。

这是 Windows 的 Node.js 版本管理器 NVMW 的问题。 2015 年有一个 issue on a repo on GitHub,但尚未修复,主要回购已存档。这是有史以来最令人沮丧的事情!我可能花了 20 多个小时才积极修复它,所以我希望我能帮助像我一样挣扎的人。

我在使用 VC2019 和 Qt 6.0.2 的 Windows 10 上遇到了同样的问题。 当我开始时

Start->Visual Studio 2019->x64 Native Tools Command prompt

我在控制台中看到一条错误消息 window 类似

"\ is syntactically not correct"

这是由于在系统设置->系统->扩展中设置的 %path% 变量末尾的反斜杠引起的... 我删除了这个反斜杠,然后“x64 Native Tools Command prompt”打开没有错误,并且在重新启动 qtCreator 项目后构建没有错误。

不幸的是,在修复此问题后,我无法再重现它。