如何在Windows上构建64位MinGW Qt应用程序(使用Qt Creator)
我正在寻找(并且我不是唯一的)最直接的方法来构建基于Windows的64位Qt程序的MinGW.直线前进意味着最小的努力和时间(例如建立和设置).目前,我运行的是qt-project.org网站正常的官方开发环境,用于Windows 32位的MinGW / OpenGL和QtCreator.当然,我已经阅读了qt-project.org的64位维基页面(未完成…),我也读过不同的stackoverflow问题,但是我仍然感到困惑.我知道如何构建64位Qt的主题在其他帖子中被处理,但这不是我的问题,我需要的是概述和最有利的64位MinGW端口.
有一件让我困惑的例子是,mingwbuilds sourceforge项目的“x64-Qt-5.2.1 QTCreator-3.0.1-(gcc-4.8.2-seh).7z”包中的DLL似乎是32位. 澄清我的问题有点让我也提出一些相关的问题: >我需要先建立64位开发环境来生产 非常感谢你的帮助.
我认为
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中).您将需要在MinGW-w64中使用相同版本的GCC,用于构建Qt以构建自己的应用程序,因此我建议选择安装程序. 您将需要选择一个使用您想要的异常堆栈框架展开方法的构建.问题What is difference between sjlj vs dwarf vs seh?描述了存在于不同版本的Qt中的异常处理程序的类型之间的差异. SJLJ是GCC 4.8发布之前的唯一选择,但后来的GCC版本支持SEH.任何选择都会奏效,尽管SEH效率更高. 安装后 安装Qt后,您可以将Qt / qt-ver / qt-ver / bin和Qt / qt-ver / mingw64 / bin目录添加到您的“环境变量”中的“用户”或“系统路径”变量中,从而允许您使用MinGW -w64的GCC从您的首选构建过程构建.在执行此操作后,Qt Creator将自动检测MinGW-w64作为已安装的编译器. 如果您不想添加到您的路径,您可以手动为Qt Creator设置的版本指定编译器.您可能需要通过选择选项>下的qmake.exe来添加Qt版本.构建&跑.您还需要选择gdb.exe作为您的调试器在Build&运行>调试器选项卡.它将位于Qt / qt-ver / qt-ver / mingw64 / bin. 您可以将MinGW-w64工具链与其他工具链进行交换.要在Qt Creator中执行此操作,您可以在工具箱之间创建和交换. 部署 您可以使用Qt64-NG版本进行开发和部署.要部署,您需要打包您的应用程序需要运行的文件与您的应用程序,所以您的最终用户不必执行任何额外的安装步骤. 首先,创建一个部署文件夹(可能使用您的应用程序名称)并将其应用程序exe文件复制到该文件夹??.如果您使用Qt Creator,您可以在侧栏的“项目”选项卡中或应用程序的.pro文件中找到应用程序的路径. 有两种方法可以复制运行应用程序所需的dll依赖关系.您可以手动复制所需的文件,也可以使用windeployqt,Qt安装提供的程序将自动将(部分)需要的依赖关系复制到刚创建的应用程序部署文件夹中. 手动复制文件 将您的Qt / qt-ver / qt-ver / bin和Qt / qt-ver / mingw64 / bin文件夹中的以下dll文件复制到应用程序部署文件夹中.一些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 您还需要包含与您在项目中使用的Qt模块对应的任何Qt5 * .dll文件. 接下来,您需要复制Qt所需的任何插件dll文件. Qt将在应用程序部署文件夹/插件中默认寻找插件.您可以在Qt / qt-ver / qt-ver / plugins上找到您要复制的插件文件夹.这个例外是平台文件夹,它将尝试在您的应用程序部署目录/平台上查找.以下目录结构表示为最小项目复制文件的位置.将包含文件夹的任何其他所需插件复制到部署/插件文件夹中. /部署 /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 /部署/插件/ imageformats qjpeg.dll Windeployqt 您可以在Qt / qt-ver / qt-ver / bin文件夹中找到windeployqt.exe. Windeployqt要求您的Qt / qt-ver / qt-ver / bin和mingw64 / bin文件夹在您的用户或系统路径变量中正常工作. 要使用windeployqt,请打开一个命令窗口并更改到您的应用程序部署目录.运行它的语法可以在Qt Deployment找到.你可能想要运行它,如下所示: windeployqt.exe app.exe Windeployqt(Qt 5.4.1)将您的imageformats和iconengines插件文件夹复制到您的应用程序部署目录级别而不是插件文件夹中.这是正确的位置,因为它会改变Qt查找这些文件夹的位置. 故障排除 您可以通过在没有安装Qt开发库的路径中运行应用程序来测试您是否拥有正确的文件.如果您的应用程序启动没有错误,您将知道Qt找到所需的依赖关系,您可以打包应用程序进行分发. 如果您收到错误,请参阅Tripleboot deployment guide.您也可以尝试使用Process Explorer查看应用程序尝试在依赖关系丢失错误时加载的依赖关系. 打包 通常,应用程序与归档和/或安装程序一起分发. Qt Installer Framework提供了一个方便的方法来打包您的Qt应用程序作为安装程序可执行文件分发. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 用于windows的wan模拟器
- windows-server-2008-r2 – PowerShell脚本的电子邮件结果
- windows-phone-7 – 使WebBrowser透明化
- 在Windows中从Golang启动一个新的命令窗口
- powershell – Office365如何恢复整个垃圾箱
- 解决:IIS的:DCOM?遇到错误“重叠?I/O?操作在进行中&n
- Windows上的Boot2docker代理
- windows-desktop-gadgets – 在没有Visual Studio的情况下调
- Microsoft符号服务器/本地缓存哈希算法
- win7/10下Qt Creator调试提示:The selected debugger may
- windows – 在许多机器上将所有网卡更改为自动/自
- windows-7 – 更改脱机文件的网络路径
- 如何配置Compass在Windows上生成带有Unix行尾的文
- x86 assember – Windows下的非法操作码0xff / 7
- Windows Credential Provider与C#
- windows – mathematica中便携式笔记本电脑的相对
- windows-server-2012-r2 – Hyper-V 2012 R2共享
- Heroku删除Gemfile.lock,因为它是在Windows上生成
- Microsoft符号服务器/本地缓存哈希算法
- 在Microsoft Excel中访问SQLite数据库的最佳方式