gpt4 book ai didi

c++ - Qt 应用程序 : How to create standalone executable file for Windows (& Mac) from Mac?

转载 作者:可可西里 更新时间:2023-11-01 11:12:04 25 4
gpt4 key购买 nike

我在 MacBook (El-Capitan 10.11.2) 上开发了一个 Qt 应用程序,现在可以发布了。

我现在想要的是为 Mac 和 Windows 操作系统创建独立的可执行文件

但是我不知道怎么办!

我找到了这个 link但我无法遵循它的指导,它看起来与我的系统显示的不同。

如果你有任何想法,请帮助我。

谢谢

最佳答案

好吧,要为 Windows 编译应用程序,您将需要一台 Windows 机器(或至少是一台虚拟机)。你不能在 mac 上为 windows 编译。

关于“独立”:最简单的方法是将您的应用程序与所有必需的 dll/框架一起部署,并将它们作为一个“包”发送。为此,有工具 windeployqtmacdeployqt .但是,这些将不是“单个文件”应用程序,而是文件的集合。

如果你想要一个单一的文件,你将不得不静态构建Qt!你可以这样做,但你必须自己做。如果这样做,请注意 LGPL 许可证(Qt 免费版本的许可证)要求您公开程序的源代码!如果您只是链接到动态库,情况就不是这样了。

编辑:

部署

部署可能非常困难,因为您必须针对每个平台采取不同的方式。大多数时候你会有 3 个步骤

  1. 依赖关系解析:在这一步中,您收集应用程序所需的所有可执行文件/库/翻译/...,并将它们收集到彼此可以找到的地方。对于 Windows 和 Mac,这可以使用我上面提到的工具来完成。
  2. 安装:在这里您必须创建某种“安装程序”。最简单的方法是创建一个 zip 文件,其中包含您需要的一切。但是如果你想有一个“好的”安装,你将不得不为每个平台创建合适的“安装程序”。 (许多可能性之一是 Qt Installer Framework 。最好的一点是:它是跨平台的。)
  3. 分发:分发是指如何将您的程序提供给用户。在 Mac 上,您将拥有 App-Store,而在 Windows 上则没有。最好的方法是在为此创建的网站(如 sourceforge、github 等)上提供下载

我可以帮助您完成第一步,但对于第二步,您必须研究各种可能性并决定一种方法。

依赖

解决依赖关系可以通过静态构建 Qt(这样您将只有一个文件,但需要额外的工作,因为您必须编译 Qt)或使用动态构建来完成。对于动态构建,Qt 会帮你解决依赖关系:

macdeployqt 相当容易使用。在 Release模式下编译您的应用程序并调用 <qt_install_dir>/bin/macdeployqt <path_to_your_bundle>/<bundle>.app .完成后,所有 Qt 库都存储在 <bundle>.app 中文件夹。

对于windeployqt基本相同:<qt_install_dir>\bin\windeployqt --release <path_to_your_build>\<application>.exe .所有依赖项都将位于构建文件夹中。 (提示:将 <application>.exe 复制到一个空目录中,然后在该路径上运行 windeployqt。这样您就可以摆脱所有构建文件)。

关于静态构建:只需谷歌一下,您会发现针对任何平台的数百种解释。但是除非您别无选择,只能使用一个文件(无论出于何种原因),否则它会建议您使用动态构建。关于用户体验:在 Mac 上,他们不会注意到差异,因为在这两种情况下,所有内容都将隐藏在应用程序包中。在windows上,有多个文件很正常,所以没有人会打扰。 (如果您为 Windows 创建安装程序,只需确保添加桌面快捷方式。这样用户将有“单个文件”可以单击。)

关于c++ - Qt 应用程序 : How to create standalone executable file for Windows (& Mac) from Mac?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34546782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com