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