【问题标题】:making an installable executable for os x为 os x 制作可安装的可执行文件
【发布时间】:2012-12-06 07:50:51
【问题描述】:

我有一个在 OS X 上使用 clang++ 和 g++ 4.7 版编译的应用程序。我编写的应用程序使用第三方 sdk,例如 opencv、glfw 等。到目前为止,我可以制作一个可执行文件,但由于依赖关系,它只能在我自己的计算机上运行。 OS X 开发人员使用哪些工具来导出他们的应用程序(即,使它们可安装或可执行并包含所有库)?还有一个限制,我当前的操作系统是山狮,但我希望它能够向后兼容至少 10.6 或 10.5,这曾经是 x64 开关。

【问题讨论】:

标签: c++ macos g++ clang++


【解决方案1】:

您打算以application bundle 的形式分发您的应用程序,还是仅以可执行二进制文件的形式分发?

如果它是一个应用程序包,并且您可以获取并链接到您的第三方 SDK 作为框架(例如 OpenCV.framework),那么您可以通过将框架复制到 AppName.app/Contents/Frameworks/ 文件夹中来将它们与您的应用程序一起分发。

如果它不是应用程序包,或者您无法获取第三方 SDK 作为框架,那么您需要静态链接到这些 SDK。有关如何执行此操作的更多信息,请参阅this question

要为早期版本的 OS X 构建,请在构建程序之前设置 MACOSX_DEPLOYMENT_TARGET 环境变量。例如:

export MACOSX_DEPLOYMENT_TARGET=10.6

【讨论】:

  • 我建议他使用捆绑包,现在几乎每个人都在 OSX 上这样做。
  • 所以我现在没有使用任何 xcode 工具链。我将研究这个捆绑包是如何工作的。感谢您的信息
  • @user1881587 在 Xcode 之外创建应用程序包相当简单。您可以查看系统上安装的其他应用程序以查看捆绑包的布局。您需要做的主要事情是创建一个Info.plist 文件,并为您的应用填充正确的值。
【解决方案2】:

首先,学习如何制作捆绑包,它会为你省去很多痛苦。其次,您应该能够为旧版本的 OSX 进行编译,但实际上很难让它工作。最好保留较旧的安装。

【讨论】:

    猜你喜欢
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多