2009-07-31 55 views
8

我需要为我们的客户创建我们的图书馆的Mac版本。我不熟悉Mac上的动态库,但从我的理解,我有2个选项:.dylib或框架。什么是最好的选择?为什么?在mac上创建.dll:.dylib或框架?

一些相关的问题:

  • 如果我理解正确,名为.dylib 已经被安装在stnadard UNIX目录如/ usr/lib目录,等等。因此使用名为.dylib应的一个我的客户的安装程序要复杂得多,因为他们可能需要请求在系统文件夹中写入某些内容的权限?
  • 框架可以是私人的,并嵌入到我的客户捆绑中?所以没有人可以看到/使用它们?

任何建设性的批评/意见/想法更受欢迎。提前致谢。

亚历

+0

您是否正在查看拖放式安装,或提供处理所有内容的安装程序应用程序(.pkg)?如果是后者,那么权限不应该成为问题,因为几乎每个我已经运行的安装程序都要求提供管理员密码(从而获得管理员权限)。 – 2009-07-31 13:59:34

回答

8

.dylib类似于.so在Linux上。

框架基本上只是OSX分发库和头文件的方式。它们是用于库分发的Application Bundle等效项。

随着如果你想确保你应该使用静态库.a文件),并让你的客户静态它们链接到他们的应用程序的其他人不使用它们任何一种方法。

否则,Frameworks和.dylib之间没有太大的区别,除了先前的更适合OSX开发人员。

要么可以嵌入客户应用程序包内,otool/install_name_tool都可以处理它们。

+1

你也可以在OS X上使用`.so`吗?无论如何,我都看过它。 – mk12 2010-01-03 23:07:50