将 MSVC 2017 添加到 Qt

Posted

技术标签:

【中文标题】将 MSVC 2017 添加到 Qt【英文标题】:Adding MSVC 2017 to Qt 【发布时间】:2019-07-04 11:45:16 【问题描述】:

我想在我的 Qt 5.13 中正确添加 MSVC 2017 编译器,我知道在哪里添加它!但是,不知道:“怎么做?添加编译器的菜单里面需要填什么?”

我尝试了太多东西。我对 Qt 的主要问题有一个很长的故事! 我的主要问题是:“模块机器类型'x64'与目标机器'x86'冲突”,当我构建Qt应用程序时出现在控制台中! 我将包括一些我尝试过的东西:

尝试从 Qt 应用和控制台构建。 尝试了所有从 Qt 自动检测到的编译器。 还有很多,其他的就不用说了。 在我的默认套件中,大多数名称的顺序如下:“Qt 5.13.0 for UWP 64/86-bits (MSVC 2017)”。 我认为它必须是 MSVC 2017,所以我尝试设置 MSVC 2017(我有 MSVC 2019)。我找到了编译器的主程序:“cl.exe”。我去了Qt自动检测的编译器,没有找到!我试图通过从另一个已经为我制作的工具包中复制 qmake.exe 和 jom.exe 的命令来添加它。 但是,我把编译器的类型'custom',因为我没有找到MSVC。这是不对的吗?这与其他类型有什么不同?

我接下来要解决的问题(实际上是尝试)是这样的:

上图包含编译器的路径和Make的路径。 我需要找到 Make path 工具,我认为它是必需的,不是吗? 我试图在没有 Make 步骤的情况下运行程序,只有 qmake 步骤。这导致我在运行程序时遇到另一个问题:“尝试构建/部署程序时发生错误”。 我正确填写了编译器的路径,但我不知道如何填写make路径,我什至不知道make path是什么。 请注意,Qt 没有给我任何结果,因为 make 路径没有正确填写!

我希望上面的故事已经描述了所有内容,并且您需要的所有信息都已包含在上面!

【问题讨论】:

从错误消息看来,您正在尝试将 64 位库链接到 32 位可执行文件。检查您的解决方案配置! 在 ABI 中您选择了 x86,但您的编译器位于 x64 文件夹中。将 ABI 更改为 x64。 @Georgy Pashkov ,解决方案配置?如果您的意思是 Visual Studio 中的解决方案配置,那么它与我认为的无关。但是,如果您的意思是别的,请赐教。 @Amazonasmann 。我会给你一张自动检测到的编译器的图片:imgur.com/a/J0TCOD4。它们都不是明确的 x64。我在想的只是我没有适合 Qt 13 的编译器,这就是我安装 MSVC 2017 的原因。 【参考方案1】:

您不能手动将 MSVC 添加到 Qt Creator。您确实需要自动检测它。

根据 MSVC 版本和 Qt Creator 版本,检测机制也会发生变化。因此请务必使用最新版本的 Qt Creator(此时为 4.9.2),以确保检测到所有已安装的 MSVC 工具链。

另外,鉴于您的评论,您似乎混淆了 64 位和 32 位。

x86 表示 32 位,amd64 表示 64 位。

这给出了:

x86 生成 32 位 exe 的 32 位编译器 x86_amd64 生成 64 位 exe 的 32 位编译器 amd64 生成 64 位 exe 的 64 位编译器 amd_x86 生成 32 位 exe 的 64 位编译器

所以如果你想制作 32 位程序,你可以使用x86amd64_x86。如果要制作64位程序,可以使用amd64x86_amd64

如果在某个时候你想编译一个 Qt porgam,但 Qt Creator 不能识别你的 MSVC 工具链,你仍然有一个解决方案:

    从开始菜单打开Qt 5.12.4 (MSVC 2017 64-bit) 在提示符下运行C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat amd64 运行qmake并享受

【讨论】:

非常感谢。你帮助我了解发生了什么!但如果你不介意我,我还有一件事要问。我使用 qmake 生成了一个 Makefile。请问如何使用 qmake 生成可用的程序(“.exe”)? @hassan1551 您使用了可用的“make”程序之一。如果您使用 MSVC,则默认使用 nmake,但 Qt 提供了一种替代方法,称为 jom in:C:\Qt\Tools\QtCreator\bin\jom.exe【参考方案2】:

您不能手动将 MSVC 添加到 Qt Creator。如果要使用它,请确保安装了正确的 Visual Studio 版本。

如果 MSVC 编译器未出现在 Compilers 选项卡中,我建议重新安装 Visual Studio。

【讨论】:

同意!在安装 Visual Studio 之前,我尝试了很多东西。他们都没有工作。

以上是关于将 MSVC 2017 添加到 Qt的主要内容,如果未能解决你的问题,请参考以下文章

Qt工程打包发布

g++ , msvc 2015,2017System: Windows

QT静态库静态编译

如何单独提取出MSVC2017编译器并在其他IDE使用

.ui 文件未更新的 Qt 和 MSVC 问题

Qt Creator 4.3.1 未检测到 MSVC 2015 编译器