如何在Qt Creator中使用MinGW-64

时间:2016-07-12 17:27:14

标签: qt mingw-w64 msys2 qt5.6

我知道有很多关于这个的帖子,但老实说我没理解任何一个。

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

  • 我已经下载并安装了MSYS2 ....不知道该怎么办。
  • 我已经下载并安装了Qt64 - NG ....不知道下一步该做什么。

我只想在Qt中开发并选择MinGW 32和MinGW 64.

提前致谢!

编辑:我还检查了维基页面。大多数命令没有奏效。我被告知它已经过时了。

3 个答案:

答案 0 :(得分:32)

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

<强>简介

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

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

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

有了这个,我们就可以在Windows中创建我们的应用程序/程序。此外,我们还有其他两种不同的工具

  • Qt框架库,用于创建具有多平台兼容性的GUI /接口。
  • Qt Creator,一个C / C ++编辑器,带有用于Qt Framework的其他编辑工具。


关于二进制兼容性链

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

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

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

现在来了奇怪的事情。在Qt官方网页上,它只能为MinGW提供32位版本......我不知道为什么......

这是Qt64-NG项目的时候,这是一个为MinGW-w64获取Qt Framework 64bits二进制包的地方。不幸的是,该项目已经关闭,因此只有在Qt 5.5 Framework版本之前才可用。

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


安装和配置

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

对于使用QG Creator和MinGW-w64,只需要:

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

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

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

通过其他方式,除了上述步骤,如果想要使用Qt Framework库(我们的应用程序的GUI /接口)创建应用程序,它需要二进制包,这种情况是64位( 32位二进制包可以在Qt官方页面上找到)

  • 下载Qt64-NG(posix-seh,或上面选择风味)+解压缩到一个文件夹中。
    之后需要执行 qtbinpatcher.exe 包含在该目录中,只需双击。
    注意:如果将此目录更改为其他路径,请再次执行qtbinpatcher。

这是结束安装过程的地方。在我的情况下,我都在同一个文件夹下。例如:

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

现在您只需要配置QtCreator,在这种情况下:

工具&gt;选项&gt; C ++,编译器,添加&gt; MinGW的

  • name 中输入编译器版本MinGW-5.3 x64
    它将在套件中显示的名称
  • 编译器路径中浏览C ++编译器路径,在本例中为 D:\ Programacion \ mingw64_5.3.0rev0 \ bin \ g ++。exe
    < br /> ABI 中记下,它被选中在编译器中使用64位标志。这就是我们输入 name x64的原因。对于32位,只需复制并更改选择。

工具&gt;选项&gt; C ++,Debuggers,Add

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

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

工具&gt;选项&gt; C ++,Qt版本,添加,并选择放置在qt64-ng bin目录中的qmake.exe。

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

现在您只需要指定套件:

工具&gt;选项&gt; C ++,Kits,Add

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

如果要使用它,我会在CMake中the CMake路径(我使用它with Ninja)。

注意:对于安装Ninja,只需将 ninja.exe 复制到mingw-w64 \ bin目录,然后在工具包中,在 Cmake生成器中将更改复制到生成器 - &gt; ninja和额外生成器 - &gt; CodeBlocks。 Ninja同时发布了几个make命令,减少了编译时间。


1分钟配置的长文本。 Kit是我们为编译项目而选择的,一个可以拥有尽可能多的套件(CompilerA x32 + Qt5.x,CompilerB x64 + Qt5.x,CompilerX x64 + Qt4.8等)。

现在,在完成之前,一件重要的事情。在我们创建一个项目(以及它打开的项目)之后,在Projects选择器(Ctrl + 5)中我们将负责构建环境变量。

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

在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快照分支机构,我不需要检查它,它是自动完成的


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

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


替代方式

另一方面,我们有:

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

完全相同,只需使用pacman命令下载/安装软件包,并提供32位和64位版本。这些应用程序需要从MSYS2 shell启动。它不是二进制兼容性的东西,但路径很重要。

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


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

答案 1 :(得分:5)

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

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

  • 的mingw-W64-i686的-QT
  • 的mingw-W64-i686的-QT-创造者
  • 的mingw-W64-x86_64的-QT
  • 的mingw-W64-x86_64的-QT-创造者

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

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

答案 2 :(得分:1)

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