如何在Qt Creator中使用MinGW-64

and*_*seg 19 qt mingw-w64 msys2 qt5.6

我知道有很多关于这个的帖子,但老实说我并不理解它.

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

  • 我已经下载并安装了MSYS2 ....不知道该怎么做.
  • 我已经下载并安装了Qt64 - NG ....不知道接下来该做什么.

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

提前致谢!


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

Cla*_*ean 33

我知道你的问题是如何为你的Qt Creator安装一个套件,但首先我认为需要一个介绍(抱歉你的眼睛,英文不是我的母语)

介绍

目的是在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 Framework库,用于创建具有多平台兼容性的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版本之前才可用.

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


安装和配置

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

要使用带有MinGW-w64的Qt Creator,只需要:

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

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

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

通过其他方式,除了上述步骤,如果想要使用Qt框架库(我们的应用程序的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\
Run Code Online (Sandbox Code Playgroud)

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

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

  • 名称中放置编译器版本,MinGW-5.3 x64
    这是将在套件中显示的名称
  • 编译器路径中浏览C++编译器路径,在本例中为D:\ Programacion\mingw64_5.3.0rev0\bin\g ++.exeABI中

    注意,它被选中在编译器中使用64位标志.这就是我们将x64 命名的原因.对于32位,只需复制并更改选择.

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

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

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

工具>选项> C++,Qt版本,添加,然后选择放置在qt64-ng bin目录中的qmake.exe.

  • 在这种情况下,D:\ Programacion\qt64-ng\qt-5.5.0-x64-mingw510r0-seh\bin\qmake.exe
  • 名称Qt的%{Qt的:版本}(QT-5.5.0-x64的mingw510r0-SEH)
    这是一个将在工具箱选项卡中给出的名字

现在您只需要指定套件:

工具>选项> C++,套件,添加

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

如果要使用它,CMake会走CMake路径(我和Ninja一起使用).

注意:对于安装Ninja,只需将ninja.exe复制到mingw-w64\bin目录,然后在套件中,在Cmake生成器中将更改添加到生成器 - > ninja,以及Extra generator - > 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
Run Code Online (Sandbox Code Playgroud)

在QtCreator快照分支我不需要检查它,它是自动完成的


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

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


替代方式

另一方面,我们有:

  • MSYS2,类Linux工具环境.

我们都是一样的,只需使用pacman命令下载/安装软件包,就可以使用32位和64位版本.这些应用程序需要从MSYS2 shell启动.它不是二进制兼容的东西,但路径很重要.

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


编辑:更正了namings,最后的解释,并添加了Ninja的网址和安装说明.


Dav*_*son 6

您应该决定是否要使用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.