【问题标题】:How to deploy Qt apps developed in OS X to Windows?如何将在 OS X 中开发的 Qt 应用程序部署到 Windows?
【发布时间】:2017-07-25 16:05:20
【问题描述】:

我使用 Qt 5.5 框架在 OS X (El Capitan) 上开发了一个 Qt 应用程序,并希望将我的应用程序部署到 Windows。我遇到了this 的文章,但我有几个问题;

  1. 文中链接的MinGW编译器页面说它支持Qt 4.8,但是我的项目是使用Qt 5.5开发的,会不会有问题?
  2. 此外,按照文章的指示,我在 Qt 站点上找不到 Windows 的 Qt 5.5 库;文章提供的链接似乎已损坏。

你能否给我一个从我的 Mac 部署我的项目的静态可执行文件的分步过程或链接一篇文章(我在网上搜索过,但找不到)?这真是令人失望,因为 Qt 的主要卖点之一是

“一次编码,随处部署”

但与 Qt 令人印象深刻的主流文档不同,这一非常关键的步骤缺乏适当的文档或指导。

【问题讨论】:

  • 为什么不试试Qt Creator 本身呢?只需下载并安装它,您就可以开始使用了。如果您制作该 Qt 项目是为了好玩、开源或供学生使用,它是免费的,并且是用于 Qt 项目的现成 IDE,还具有图形界面。您也可以将它安装在 Mac 上,这样您就可以在两个操作系统上使用相同的 GUI。 (PS:是的,我知道,我在回避问题)
  • 我正在使用 Qt Creator。我已经制作了我的项目,现在想部署它。我相信,需要在目标机器上安装 Qt creator 才能使用这个应用程序,这不是一种优雅的做事方式。但这将是我最后的手段。有关如何部署 exe 应用程序的任何建议?
  • 关于在 Windows 上部署 Qt 应用程序的各种问题已经得到解答。 Qt 5.8 可用于 MinGW,您可以在此处找到下载页面:download.qt.io/official_releases/qt/5.8/5.8.0/…
  • Qt 与 source 兼容。您需要在要部署的每个平台上从源代码构建您的软件。如何构建软件(或 Qt 本身)与 Qt 无关。
  • @BasileStarynkevitch 哦,我现在明白了。谢谢你的洞察力。我是软件开发的新手(仍在学习),我对 Qt 部署的看法是完全错误的。我以为你可以在任何地方从给定的操作系统部署一个编译项目。

标签: c++ windows macos qt


【解决方案1】:

我的项目基于 Qt,部署在 Linux、Windows 和 macOS 上。

在 Windows 上,我使用 MSYS2,其中包括 Qt 库(目前为 5.6.2),如果您的项目有多个外部依赖项,那就太棒了。我发现使用官方的 Qt/MINGW 环境,构建外部依赖项有点像地狱。

这是指导我的用户如何build on Windows 的 wiki。

完成 make install 后,您需要将 Qt 库复制到安装文件夹,包括所有 QML deps(如果您使用的话)

然后我使用NSIS 来实际创建最终的自安装 EXE 包。这是我在项目中使用的the script

希望对您有所帮助。

否则,如果您还没有阅读Qt documentation,我建议您阅读

【讨论】:

  • 嘿兄弟,谢谢你的回答。我已按照您的说明安装了 MSYS2。现在你已经告诉在安装文件夹中复制 Qt 库的下一部分,你能详细说明一下吗?我应该下载 Qt 5.5 库吗?我怎么能这样做?再次感谢。
  • 正如我所说,Qt 库包含在 MSYS2 (mingw32/mingw-w64-i686-qt5) 中。它是 5.6.2,所以它是 LTS 版本。你不需要安装额外的东西。要复制到目标文件夹,您需要准备一个专用于该原因的 .pro 文件。每个平台我都有一个。 Check this out。请记住还包括基本的 DLL,如 libstdc++-6.dll 和 libgcc_s_dw2-1.dll
  • P.S.如果我的回答满足你的需要,你应该接受。
【解决方案2】:

虽然@Massimo Callegari 提供了一个足智多谋的答案,但我并没有使用它来完成我的任务,可能是因为我的项目非常复杂。相反,我遇到了this wiki 页面说明来部署 Windows Qt 应用程序。它就像魅力一样,我虽然应该在这里记录它,因为它对像我这样的新学习者真的很有帮助。我的项目使用各种 3rd 方库,如 QCustomPlot、QXlsx。所以我的意思是,无论您的项目是使用 Qt 本机模块还是第 3 方模块,所描述的方法都链接。但是我认为这可能不是部署应用程序的最优雅的方式(我认为使用安装打包程序以及诸如 InstallShield 之类的安装软件是最佳解决方案)但是这种方法可以完成工作。干杯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 2018-02-17
    • 2023-03-25
    • 1970-01-01
    • 2010-10-11
    相关资源
    最近更新 更多