如何在 Qt Creator 中使用 MinGW-64

How to use MinGW-64 with Qt Creator

我知道有很多关于此的 post,但老实说我一个都不懂。

那么,如何为我的 Qt Creator(开源 5.7)安装套件?

我只是想能够在Qt中开发,所以在MinGW 32和MinGW 64之间选择了。

提前致谢!


编辑:我还检查了 wiki 页面。大多数命令都不起作用。有人告诉我它已经过时了。

您应该决定是否要使用 MSYS2 生态系统。如果要使用MSYS2,应该卸载单独下载的Qt软件,以免混淆。对于此答案的其余部分,我假设您使用的是 MSYS2。

您可以使用 pacman 安装这些 MSYS2 软件包:

  • mingw-w64-i686-qt
  • mingw-w64-i686-qt-creator
  • mingw-w64-x86_64-qt
  • mingw-w64-x86_64-qt-创作者

然后使用“开始”菜单中的相应快捷方式打开 MinGW-w64 32 位或 64 位 shell,然后在命令行中 运行 "qtcreator"。

您还可以使用其他构建系统来构建您的软件。我已经成功地使用 CMake 在 MSYS2 中构建 Qt 应用程序,而不是 Qt Creator。

直接从资源管理器启动也可以,除非您需要使用 qtcreator 的 Autotools 插件,在这种情况下需要从 msys2 shell 启动它(以便正确设置各种环境变量)。

我知道你的问题是如何为你的 Qt Creator 安装一个工具包,但首先我认为它需要一个介绍(对不起你的眼睛,英语不是我的母语)

简介

目的是在Windows下使用GCC编译器,这意味着我们需要MinGW(Minimalist GNU for Windows)。

MinGW 仅适用于 32 位,因此我们需要 64 位分支,这意味着使用 MinGW-w64 或 TDM-GCC 版本。

  • MinGW,用于 32 位应用程序的 GCC 编译器。
  • MinGW-w64,用于 32 位和 64 位应用程序的 GCC 编译器。
  • TDM-GCC,用于 32 位和 64 位应用程序的 GCC 编译器。

这样我们就可以在 Windows 中创建我们的 applications/programs。此外,我们还有其他两种不同的工具:

  • Qt Framework 库,用于创建具有多平台兼容性的 GUI's/Interfaces。
  • Qt Creator,一个 C/C++ 编辑器,带有用于 Qt Framework 的附加编辑工具。


关于二进制兼容链

当我们制作应用程序时,我们必须遵循使用相同编译器版本编译的库链,就像我们必须遵循这些库的应用程序二进制接口(32 位或 64 位)一样。

这意味着,如果我们要使用 MinGW-w64 5.3 和 Qt 5.7 Framework 编译 32 位和 64 位应用程序,我们需要:

  • MinGW-w64 5.3(在配置中带有标志 32 位)和在 MinGW-w64 下编译的 Qt 5.7 Framwork 32 位构建(MinGW-w64 版本 5.3 或更低版本,只要它们与我们的编译器保持二进制代码兼容性) ).
  • MinGW-w64 5.3(在配置中带有标志 64 位)和在 MinGW-w64 下编译的 Qt 5.7 Framwork 64 位构建(MinGW-w64 版本 5.3 或更低版本,只要它们与我们的编译器保持二进制代码兼容性) ).

奇怪的事情来了。在 Qt 官方网页上,它仅适用于 MinGW 的 32 位构建...我不知道为什么...

这是 Qt64-NG 项目的时间,在这里可以获得 MinGW-w64 的 Qt Framework 64 位二进制包。不幸的是该项目已关闭,因此仅在 Qt 5.5 Framework 版本之前可用。

我不知道还有什么地方可以为 MinGW-w64 获取更新的 64 位 Qt 二进制包(也许是 MSYS2 项目中的那些?我还没有尝试过)。所以,如果需要的话,此时必须自己编译(这是为了回答你开源5.7的评论)。


安装和配置

现在你的问题。如何为您的 Qt Creator 安装套件。我要回答 64 位二进制文​​件,因为它是我使用的(后来你只需要为 32 位做同样的事情)

要在 MinGW-w64 上使用 Qt Creator,只需:

  • 下载Qt Creator并安装。如果要使用 CMake 项目,我的建议是下载 4.1(或更高版本)snapshots

  • 下载MinGW-w64(posix-seh,或您选择的口味)+解压在一个文件夹中。

就是这样,我们可以创建 32 位和 64 位应用程序。

换句话说,除了上述步骤之外,如果要使用 Qt Framework 库(我们的应用程序 GUI/Interface)创建应用程序,则需要二进制包,本例为 64 位( 32位二进制包在Qt官网有)

  • 下载Qt64-NG(posix-seh,或者你上面选择的flavor)+解压到一个文件夹。
    之后需要执行qtbinpatcher.exe包含在该目录下,双击即可。
    注意:如果将此目录更改为其他路径,请重新执行qtbinpatcher。

安装过程到此结束。就我而言,我都在同一个文件夹下。示例:

D:\Programacion\mingw64_5.3.0rev0\
D:\Programacion\qt64-ng\qt-5.5.0-x64-mingw510r0-seh\

现在你只需要配置QtCreator,在本例中:

工具 > 选项 > C++、编译器、添加 > MinGW

  • name中输入编译器版本,MinGW-5.3 x64
    是Kits中显示的名称
  • 编译器路径中浏览C++编译器路径,在本例中为D:\Programacion\mingw64_5.3.0rev0\bin\g++ .exe

    注意 ABI 它是 selected 使用编译器中的 64 位标志。这就是我们放入 name x64 的原因。对于 32 位,只需复制并更改 selection.

工具 > 选项 > C++、调试器、添加

  • Path 中浏览到调试器路径,在本例中为 D:\Programacion\mingw64_5.3.0rev0\bin\gdb.exe
  • name 中输入版本中显示的名称,在本例中为 GDB 7.10.1。
    这是将显示的名称套件

而且,如果要使用 Qt Framework 创建 64 位程序,除了上述之外:

Tools > Options > C++, Qt versions, Add, and select the qmake.exe placed at the qt64-ng bin directory.

  • 在这种情况下是,D:\Programacion\qt64-ng\qt-5.5.0-x64-mingw510r0-seh\bin\qmake.exe
  • name中输入Qt %{Qt:Version} (qt-5.5.0-x64-mingw510r0-seh)
    这是将显示在套件选项卡中的名称

现在您只需指定套件:

工具 > 选项 > C++、工具包、添加

  • 名称中 MinGW-5.3 x64 (Qt-5.5)
  • 编译器中 select MinGW-5.3 x64
  • 调试器 select GDB 7.10.1
  • Qt 版本 select Qt 5.5.0 (qt-5.5.0-x64-mingw510r0-seh)

在 CMake 中 the CMake path if one is going to use it (I use it with Ninja)。

注意:要安装 Ninja,只需将 ninja.exe 复制到 mingw-w64\bin 目录,然后在套件中的 Cmake 生成器 将更改推送到 generator->ninja 和 Extra generator->CodeBlocks。 Ninja 同时启动多个 make 命令,减少了编译时间。


1 分钟配置的长文本。 Kit就是我们编译项目的select,一个人可以拥有多少个Kit(CompilerA x32 + Qt5.x , CompilerB x64 + Qt5.x , CompilerX x64 + Qt4.8等等等等)。

现在,在结束之前,一件重要的事情。在我们创建项目(并且该项目已打开)后,在项目 select 或 (Ctrl+5) 中我们必须处理构建环境变量。

这些是将在启动我们的 Runs/Builds 进行测试和调试的命令中添加的变量。

在 PATH 中,需要将路径放入 MinGW-w64 和 Qt64-NG。根据我的愚见,由于 dll 的缘故,我建议按该顺序放置它。按照我们的例子:

PATH D:\Programacion\mingw64_5.3.0rev0\bin;D:\Programacion\qt64-ng\qt-5.5.0-x64-mingw510r0-seh\bin;the_other_paths

在QtCreator snapshots分支我不需要检查,自动完成


大多数 C/C++ 编辑器都是这样工作的。要安装编辑器,请指定编译器和调试器路径,并指定从编辑器启动的构建环境变量(覆盖我们在 Windows 中的那些环境变量)。

注意:我建议使用 64 位编译 Qt Creator,因为框架会发生这种情况,因为 Windows 它仅在 Qt 官方网站上提供 32 位版本


另一种方式

另一方面,我们有:

  • MSYS2,一个 Linux 类似的工具环境。

都是一样的,只是我们 download/install 使用 pacman 命令的软件包,并且有 32 位和 64 位版本。这些应用程序需要从 MSYS2 shell 启动。这不是二进制兼容性问题,而是路径问题。

MSYS2 项目中可用的库可用于我描述的第一个工具链(由于也在 MinGW-w64 下构建)。


编辑:更正了命名,最后的解释,并添加了 Ninja 的 url 和安装说明。