- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在寻找(并且肯定不是唯一的一种)在Windows上构建基于MinGW的64位Qt程序的最直接方法。直截了当意味着最小的精力和时间(例如,用于构建和设置)。目前,我运行带有MinGW/OpenGL和QtCreator的Windows 32位版qt-project.org网站的常规官方开发环境。当然,我已经阅读了qt-project.org的(未完成...)64位Wiki页面,并且阅读了不同的stackoverflow问题,但仍然感到困惑。我知道其他文章中已经讨论了如何构建64位Qt的主题,但这不是我的问题,我需要的是概述和最有利的64位MinGW端口。
例如,令我感到困惑的是,来自mingwbuilds sourceforge项目的“x64-Qt-5.2.1 + QTCreator-3.0.1-(gcc-4.8.2-seh).7z”程序包中的DLL似乎是32位的。
为了澄清我的问题,让我也提出一些相关的问题:
最佳答案
更新3/11/2019:从Qt 5.12开始,Qt项目正式支持64位模式下的MinGW-w64。您可以从Qt安装程序安装它,也可以从Qt的源代码自己构建(他们已经解决了阻止成功构建的问题)。
先前更新:我认为rubenvb's answer现在是此问题的最佳答案:MSYS2包含使用MinGW-w64构建的最新Qt,这是构建64位Qt应用程序所需要的。我建议在rubenvb的答案中使用Qt wiki链接进行部署。它大大改善了。
Qt64-NG
我建议从Qt64-NG project安装Qt版本。
该项目使用MinGW-w64提供了最新的x64 Qt构建。 MinGW-w64项目的GCC编译器也包含在安装程序版本中(但不包括在7z中)。您将需要与用于构建自己的应用程序的Qt的MinGW-w64中的GCC版本相同,因此建议您选择安装程序。
您将需要使用所需的异常堆栈框架展开方法来选择构建。问题What is difference between sjlj vs dwarf vs seh?描述了不同版本的Qt中存在的异常处理程序类型之间的差异。在GCC 4.8发布之前,SJLJ是唯一的选择,但后来的GCC版本支持SEH。尽管SEH效率更高,但这两种选择都可以。
安装后
安装Qt之后,您可以将Qt/qt-ver/qt-ver/bin和Qt/qt-ver/mingw64/bin目录添加到环境变量中的User或System Path变量中,这将允许您使用MinGW -w64的GCC,可从您喜欢的构建过程进行构建。完成此操作后,Qt Creator将自动将MinGW-w64检测为已安装的编译器。
如果您不想添加到路径中,则可以手动为刚刚使用Qt Creator设置的版本指定编译器。您可能需要通过在“选项”>“构建和运行”下选择qmake.exe来添加Qt版本。您还需要在Build&Run> Debuggers选项卡下选择gdb.exe作为调试器。它将位于Qt/qt-ver/qt-ver/mingw64/bin。
您可以将MinGW-w64工具链与其他工具链交换。要在Qt Creator中执行此操作,您可以在套件之间创建和交换。
部署方式
您可以使用Qt64-NG构建进行开发和部署。要进行部署,您将需要打包应用程序与应用程序一起运行所需的文件,因此最终用户将不必执行任何其他安装步骤。
首先,创建一个部署文件夹(可能带有您的应用程序名称),然后将应用程序exe文件复制到其中。如果您使用的是Qt Creator,则可以在侧栏的“项目”选项卡中找到应用程序exe的路径,也可以在应用程序的.pro文件中找到该路径。
您可以通过两种方式复制运行应用程序所需的dll依赖项。您可以手动复制所需的文件,也可以使用windeployqt(Qt安装随附的程序),该程序会自动将(大多数)所需的依赖项复制到部署中,并将其部署到刚创建的应用程序部署文件夹中。
手动复制文件
将以下dll文件从Qt/qt-ver/qt-ver/bin和Qt/qt-ver/mingw64/bin文件夹复制到应用程序部署文件夹。一些dll文件将位于两个文件夹中,并且可以使用以下两个位置:
icudt54.dll
icuin54.dll
icuuc54.dll
libgcc_s_sjlj.dll or libgcc_s_seh.dll (corresponds with chosen stack unwinding method)
libssp-0.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
/platforms
/plugins
icudt54.dll
icuin54.dll
icuuc54.dll
app.exe
libgcc_s_seh-1.dll
libssp-0.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
qwindows.dll
qjpeg.dll
windeployqt.exe app.exe
关于windows - 如何在Windows(使用Qt Creator)上构建64位MinGW Qt应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25402225/
我已经开始使用 MinGW/MSYS 试图在 Windows 上使用一些 Linux 库。使用 ./configure --prefix=/mingw make make install 到目前为止运
Mingw.org显然还没有完全死掉,但最新的版本是 gcc 4.5.2,而 4.6 已经是老新闻了。 有谁知道我在哪里可以获得 mingw-gcc 4.6+?是 mingw-w64更活跃?他们似乎也
假设我有三个 C 源文件。前两个是 LIB(lib*.a?),第三个是使用它们的应用程序。 第一个是(re.c): int re(int i) { return i; } 第二个是(test.
MinGW、MinGW-w64和MinGW-builds有什么区别? 我应该使用哪一个在 Windows 8 机器上使用 Eclipse IDE 编译 c++ 11 源代码? 最佳答案 MinGW 是
至少从2021-01-10T15:19:40Z起,我无法访问www.mingw.org。 据我所知,这是mingw官方网页。 有人知道www.mingw.org的状态吗?或者,还有其他套房问这个问题吗
MinGW 有什么区别项目和 32-bit portion MinGW-w64的项目? MinGW-w64 的 32 位部分与 x64 有任何关系吗? 看起来他们的编译器做了完全相同的事情......
我想在 Windows 中有一个 POSIX 环境(用作系统 shell ),同时生成 native Windows 可执行文件。过去的一种选择是安装 Cygwin 和 MinGW,并可能从 Cygw
Qt 和 Code blocks 下载包都有自己的 MinGW 编译器。还有独立的 MinGW 本身。它们之间有什么区别吗? 我可以使用 Qt 的 MinGW 来构建代码块项目,反之亦然吗? 如果我想
我已经通过网络安装程序安装了 msysgit。我最终得到了将近 2 GB 的资料,其中包括 git 源和 MinGW。 我有三个问题 我已经从 MinGW.org 获得了 MinGW。现在我想我可以删
我终于设置了 mingw 和 msys,现在我想编译 libjpeg。我从 projekt 页面 (jpeg-8d) 下载了最新的 libjpeg 源并提取了文件。 然后我像这样运行配置命令: ./c
我喜欢 vcpkg 的想法,但我想我更愿意坚持使用 MinGW 作为我的编译器。 我找不到关于我是否可以设置(或如何设置)vcpkg 以便它为 MinGW 而不是 MSVC 编译包的任何资源。如果可能
我将在 Windows 中使用 NetCDF,我认为它必须使用 MinGW 编译,因为我的主程序和所有其他库已经使用 MinGW 编译。 但是当我使用 MinGW(gcc 版本 4.6.2)时。我收到
我正在尝试设置 MinGW。我已经下载了最新的安装程序,它安装了 mingw-get,但该实用程序无法获取软件包并提供以下类型的消息: mingw-get: * ERROR * Get package
我想使用 mingw-get-inst-20120421.exe 从 Sourceforge 下载 MinGW C 和 C++ gnu 编译器。它让我可以选择下载预先打包的存储库或最新的存储库。当我在
我刚刚按照 this post 设置了 MinGW 环境 但是如何向其中添加 3rd 方库? 最佳答案 库由两个主要组件组成——C 头文件和编译后的目标代码存档。 GCC 有一系列令人眼花缭乱的方法来
我不断收到错误: fatal error: mpi.h: No such file or directory 如何将 mpi.h 作为默认库包含在内?我相信我已经将 c:\MPICH2\bin 放在
看我有这样的代码 #include #include #include void* thread_function(void) { printf ("This is thread %d \n",p
如何使用 Mingw 在 Windows 中为源目录应用补丁文件? 最佳答案 使用mingw-get获取msys补丁 mingw-get install msys-patch 然后像unix一样使用p
我正在尝试使用来自 http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Automated%
我刚刚在 Windows 上安装了 MinGW,但无法像在 Linux 甚至 PuTTY 上那样进行复制/粘贴。将文本(例如从 chrome)复制并粘贴到 MinGW shell 中的技巧是什么? 最
我是一名优秀的程序员,十分优秀!