为什么 qmake 忽略 -spec 标志

Why is qmake ignoring the -spec flag?

本文关键字:标志 -spec 忽略 qmake 为什么      更新时间:2023-10-16

我在构建机器上有许多不同的VS实例,所以我使用-spec标志来告诉qmake生成正确的项目类型。不幸的是,Qt似乎忽略了它,并继续使用错误的编译器:

[01:51:01][Step 1/2] Starting: C:QtQt5.1.15.1.1msvc2012_64_openglbinqmake.exe -spec win32-msvc2013 -tp vc Fixer.pro
[01:51:01][Step 1/2] in directory: C:TeamCitybuildAgent4workd1b6b25e39f4d573srcFixer
[01:51:02][Step 1/2] WARNING: Generator: MSVC.NET: Found more than one version of Visual Studio, but none in your path! Fallback to lowest version (MSVC.NET 2013 (12.0), MSVC.NET 2012 (11.0), MSVC.NET 2010 (10.0))
[01:51:02][Step 1/2] Process exited with code 0

为什么会这样?有什么方法可以强迫它使用我想要的 VS 版本吗?

注意:我实际上没有安装VS2010。我已经卸载了它,但qmake似乎仍然能够找到它。

发生这种情况是因为您似乎安装了多个Visual Studio版本,即

(2013 MSVC.NET (12.0)、2012 MSVC.NET (11.0)、2010 MSVC.NET (10.0))

根据您的错误消息。

为了解决此问题,您需要设置PATH变量,以便首先在其中包含所需的Visual Studio。 这意味着VS2013在这种特殊情况下基于传递给qmake -spec选项的参数。

这是一种解决方案,但您也可以通过在特殊情况下运行VS2013安装的相应终端来解决此问题。如果您从开始菜单正确运行它,它将在为您设置必要的环境时启动提示。

希望这能澄清混乱。