【问题标题】:qt put multiple executables into one bundle on mac OSXqt 在 mac OSX 上将多个可执行文件放在一个包中
【发布时间】:2015-06-03 01:50:54
【问题描述】:

我们有 4 个 Mac 应用程序构成“套件”的一部分,每个应用程序都可用于通过 USB 连接的不同科学仪器。

我在 Windows 上的同事开发了一个启动屏幕应用程序,可让您根据所使用的仪器选择四个独立程序中的一个来运行。在 Windows 上,此启动屏幕应用程序与其他可执行文件位于同一文件夹中,并且所有依赖项和库也包含在同一文件夹中。因此,只需单击所需的单选按钮即可启动该程序。

我希望在 Mac OS X 上做的是将 4 个单独的程序捆绑到一个应用程序包和启动画面中,这样当应用程序启动时,用户就会看到启动画面,然后当你选择它自动启动的适当应用程序。

依赖项和库对于所有应用程序都是通用的。

我很乐意使用mac deployment tool 构建一个包含所有依赖项的应用程序包,但我不确定是否可以将多个二进制文件构建到一个应用程序包中,以及如何设置要启动的默认应用程序(启动屏幕)。

提前致谢:)

米奇

【问题讨论】:

  • 不确定细节,但绝对有可能——如果您使用这些模块,甚至 macdeployqt 本身也会将 WebKit 和 WebEngine 可执行文件插入到应用程序包中。

标签: macos qt bundle macdeployqt


【解决方案1】:

是的,可以在另一个应用包中包含多个应用包。

如何设置默认启动的应用程序

您可能知道,当您构建包时,主要的可执行二进制文件驻留在包的 Contents/MacOS 文件夹中。

捆绑包中还有 Info.plist 文件,它是 OS X 使用的清单,除其他外,用于了解用户运行应用程序时要执行的二进制文件。在这种情况下,键 CFBundleExecutable 命名 Contents/MacOS 文件夹中的二进制文件。

如果您将其他应用程序包复制到 Resources 文件夹,则可以从 Splash Screen 应用程序中locate them 并根据需要执行。

【讨论】:

  • 您的其他应用程序不必是完整的捆绑软件,它们也可以是复制到 Contents/MacOS 中的可执行文件。您可以在命令行上告诉 macdeployqt ,以便它复制其他二进制文件也需要的框架。
  • 谢谢大家,您认为您可以详细说明如何从闪屏应用程序的代码中引用 Resources 文件夹吗?
  • 这就是我在答案中链接到here 时所做的。
  • 啊,是的,抱歉我没看到。我遇到的另一个问题,将 CFBundleExecutable 变量更改为不同的二进制文件不会更改首先执行的程序,这应该在编译后更改还是应该事先指定?
  • 请针对新问题开始新问题。这将使其具有更高的知名度和更好的机会让您获得一个好的答案。
猜你喜欢
  • 2015-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-26
  • 1970-01-01
  • 2012-09-29
  • 1970-01-01
相关资源
最近更新 更多