如何在 Qt Creator 中使用 MinGW-64
How to use MinGW-64 with Qt Creator
我知道有很多关于此的 post,但老实说我一个都不懂。
那么,如何为我的 Qt Creator(开源 5.7)安装套件?
- 我已经下载并安装了 MSYS2....不知道如何使用它。
- 我已经下载并安装了 Qt64 - NG....不知道下一步该做什么。
我只是想能够在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 和安装说明。
我知道有很多关于此的 post,但老实说我一个都不懂。
那么,如何为我的 Qt Creator(开源 5.7)安装套件?
- 我已经下载并安装了 MSYS2....不知道如何使用它。
- 我已经下载并安装了 Qt64 - NG....不知道下一步该做什么。
我只是想能够在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 和安装说明。