【问题标题】:Qt Creator - How to deploy application using static parameterQt Creator - 如何使用静态参数部署应用程序
【发布时间】:2023-03-17 18:18:01
【问题描述】:

我正在尝试将 Windows 部署和应用程序作为静态,因此单个 exe 文件将包含所有必需的 dll。 因此,当我在 PC 之间分发这个单个 exe 文件时,它会正常工作。

目前,当我通过 windeployqt(包括 QMLs)发布项目时,它会在文件夹中带来一大堆 dll 和 qmls。所以我需要使用 QT 将它们连接在一起(有点像 ILMerge 软件)。

请指导我完成整个过程。

PS:编译器是 MinGW 32b

谢谢

【问题讨论】:

  • 来自 Google 的第一个链接 - Creating standalone application
  • @folibis 我当然试过了,但是没有用(没有错误,只是正常的构建)
  • 所以,你做错了。顺便说一句,您需要静态构建的商业许可。
  • @folibis 实际上没有。如果您选择 LGPL 许可证,您需要根据 LQPL 分发 Qt 库并允许用户修改和更改它们。但是您仍然可以只为您自己的代码提供已编译的目标代码,并提供有关如何使用用户选择的 Qt 库重新链接程序的说明。这很麻烦,但这是可能的。尽管如此,指向 OP 的有效点,即使使用静态二进制文件,您也需要遵循 LGPL!

标签: qt deployment qml static-libraries static-linking


【解决方案1】:

Qt 不提供静态构建下载。您需要自己构建 Qt。有一些说明可以帮助您入门:

https://doc.qt.io/qt-5/build-sources.html

然而,一个更简单的替代方案是 MXE,它将为您构建一个静态 Qt:

https://mxe.cc

要加快在 MXE 中构建 Qt,您应该添加:

JOBS := 4

settings.mk 中(将“4”替换为系统中的 CPU 内核数量。)要仅构建静态库(这是您想要的),请将 MXE_TARGETS 更改为:

MXE_TARGETS := i686-w64-mingw32.static

settings.mk 最初不存在。运行:

make check-requirements

创建它。

您应该仔细按照https://mxe.cc 上的说明进行操作。如果一切看起来都是文件,那么你可以这样做:

make qtbase

构建工具链。这将构建 GCC、Qt 所需的所有库,然后是 Qt 本身。初始设置需要一段时间,因为它需要构建所有内容。

MXE 需要 Linux、macOS 或适用于 Windows 的 Linux 子系统。我推荐Linux。使用 MXE,您可以使用官方 Qt 正常开发您的应用程序,但是当您想要构建您的应用程序的发布时,您将使用 MXE 工具链来构建它,该工具链提供了 Qt 的静态版本。

Qt 只是 MXE 提供的一个库。它还提供许多其他库的静态构建。

【讨论】:

    【解决方案2】:

    检查提到的选项后,我发现可视化here, 这是很简单的方法,但是很耗时...

    以后的googliers只有一分,不要忘记修复sqlite参数,否则7个小时的过程会卡在中间,你将不得不像我一样重新开始:)

    【讨论】:

      猜你喜欢
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多