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

时间:2017-10-04 15:51:04

标签: c++ qt visual-c++ visual-studio-2017 qt-creator

刚刚使用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自动找到的,似乎是正确的

UPDATE1。构建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\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已找到。

5 个答案:

答案 0 :(得分:2)

在接下来的步骤之后,所有运行正常。

  1. 为QtCreator设置Dracula风格:)
  2. 修改MSVS安装,为桌面添加VC ++ 2015.3 v140工具集(x86,x64)。
  3. 很奇怪。这就是我不喜欢窗户的原因。它过着自己的生活!

    所以答案是尝试重新安装/修改组件,包括QtCreator本身。

答案 1 :(得分:2)

这是安装了NVMW的任何人的解决方案:

在无法在工作笔记本电脑和私人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的安装。