首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Qt应用程序:如何从Mac为Windows (& Mac)创建独立的可执行文件?

Qt应用程序:如何从Mac为Windows (& Mac)创建独立的可执行文件?
EN

Stack Overflow用户
提问于 2015-12-31 12:51:47
回答 1查看 5.5K关注 0票数 2

我在MacBook ( application 10.11.2)中开发了一个Qt应用程序,现在可以发布了。

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

但我不知道怎么做!

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

如果你有什么想法,请帮帮我。

谢谢

EN

Stack Overflow用户

回答已采纳

发布于 2015-12-31 14:24:36

好的,要为windows编译一个应用程序,您需要一个windows机器(或者至少一个虚拟机)。您不能在mac上编译windows。

关于“独立”:简单的方法是将应用程序与所有必需的dll/框架一起部署,并将它们作为一个“包”发布。要做到这一点,有一些工具windeployqtmacdeployqt。但是,这些将不是“单个文件”应用程序,而是一组文件。

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

编辑:

部署

部署可能非常困难,因为您必须对每个平台进行不同的部署。大多数情况下,您将有3个步骤

  1. 依赖性解决:在这个步骤中,您收集所有可执行的/lirabries/翻译/.您的应用程序需要在它们可以找到的地方收集它们。对于windows和mac,这可以使用我前面提到的工具来完成。
  2. 安装:在这里,您必须创建某种“安装程序”。最简单的方法是创建一个压缩文件,其中包含您需要的所有内容。但是如果你想要一个“很好”的安装,你必须为每个平台创建合适的“安装程序”。(许多可能性之一是Qt安装程序框架。最棒的是:它是跨平台的。)
  3. 分发:分发是如何将您的程序发送给用户。在Mac上,您将拥有App,对于您没有的windows。最好的方法是在为此创建的网站上提供下载(比如sourceforge,github,.)

我可以帮你做第一步,但在第二步,你必须研究可能性,并决定如何做到这一点。

依赖关系

解决依赖关系可以通过静态构建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创建安装程序,只需确保添加桌面快捷方式即可。这样,用户就可以点击“一个文件”。)

票数 8
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34546782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档