2012-12-06 74 views
2

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

+1

https://developer.apple.com/library/mac/#documentation/developertools/conceptual/PackageMakerUserGuide/Introduction/Introduction.html – trojanfoe

回答

0

您打算将您的应用分配为application bundle,还是仅将其作为可执行二进制文件?

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

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

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

export MACOSX_DEPLOYMENT_TARGET=10.6 
+0

我推荐他去捆绑,这是几乎每个人现在做的事情OSX。 –

+0

因此,我现在没有使用任何xcode工具链。我将研究这个捆绑包的工作原理。感谢您的信息 – user1881587

+0

@ user1881587在Xcode之外创建应用程序包相当简单。您可以查看系统中安装的其他应用程序以查看捆绑包的布局。你需要做的主要事情是创建一个Info.plist文件,并为你的应用程序填充正确的值。 – sjs

0

首先,学习如何制作一个包,它会为您节省很多的痛苦。其次,能够编译为旧版本的OSX,但实际上它可能很难使其工作。最好保持旧的安装。