我在MacBook ( application 10.11.2)中开发了一个Qt应用程序,现在可以发布了。
我现在想要的是为Mac和Windows 创建独立的可执行文件。
但我不知道怎么做!
我找到了这个链接,但我无法遵循它的指导,它看起来与我的系统显示的不同。
如果你有什么想法,请帮帮我。
谢谢
发布于 2015-12-31 14:24:36
好的,要为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
。所有依赖项都将在构建文件夹中。(提示:将<application>.exe
复制到一个空的目录中,然后在该路径上运行win部署on。这样你就可以摆脱所有的构建文件)。
关于静态构建:只要在google上搜索它,您就可以找到任何平台的数百种解释。但是,除非您别无选择,只能使用一个文件(无论出于什么原因),否则它会建议您使用动态构建。关于用户体验:在mac上,他们不会注意到有什么不同,因为在这两种情况下,所有的东西都会隐藏在应用程序包中。在windows上,有多个文件是正常的,所以没有人会麻烦。(如果为windows创建安装程序,只需确保添加桌面快捷方式即可。这样,用户就可以点击“一个文件”。)
https://stackoverflow.com/questions/34546782
复制相似问题