我在MacBook(El-Capitan 10.11.2)中开发了一个Qt应用程序,现在已准备好发布。
我现在想要的是为Mac和Windows操作系统创建独立的可执行文件。
但我不知道怎么做!
我发现了这个link但是我无法遵循它是指导,它看起来与我的系统向我展示的不同。
如果您有任何想法,请帮助我。
谢谢
答案 0 :(得分:5)
好吧,要编译Windows应用程序,您需要一台Windows机器(或至少一台虚拟机)。你不能在mac上编译windows。
关于“独立”:简单的方法是将您的应用程序与所有必需的dll /框架一起部署,并将它们作为一个“包”发布。为此,有windeployqt
和macdeployqt
工具。但是,这些不是“单个文件”应用程序,而是文件集合。
如果您想拥有一个文件,则必须静态构建Qt!你可以这样做,但你必须自己做。如果你这样做,请注意LGPL许可证(免费版Qt的许可证)要求你公开你的程序的源代码!如果您只是链接到动态库,情况并非如此。
部署可能非常困难,因为每个平台都必须采用不同的方式。大多数情况下,您将有3个步骤
我可以帮助你完成第一步,但是对于第二步,你将不得不研究可能性并决定一种方法。
解决依赖关系可以通过静态构建Qt来完成(这样你将只有一个文件,但是因为你必须编译Qt而获得额外的工作)或者使用动态构建。对于动态构建,Qt将帮助您解决依赖关系:
macdeployqt相当容易使用。在发布模式下编译您的应用并致电<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
。所有依赖项都将位于build文件夹中。 (提示:将<application>.exe
复制到空的directoy中,然后在该路径上运行windeployqt。这样就可以摆脱所有构建文件。
关于静态构建:只需google它,你会发现任何平台的数百个解释。但除非您别无选择,只能使用一个文件(无论出于何种原因),否则建议您使用动态构建。关于用户体验:在Mac上,他们不会注意到差异,因为在这两种情况下,所有内容都将隐藏在应用程序包中。在Windows上,拥有多个文件是正常的,所以没人会打扰。 (如果您为Windows创建安装程序,只需确保添加桌面快捷方式。这样用户就可以单击“单个文件”。)