在mac上创建.dll:.dylib或框架?

vec*_*zor 11 macos frameworks dylib

我需要为我们的客户创建一个Mac版本的库.我不太熟悉Mac上的动态库,但据我所知,我有两个选项:.dylib或框架.什么是最好的选择?为什么?

几个相关的问题:

  • 如果我理解正确,.dylib 必须安装在stnadard UNIX目录之一,例如/ usr/lib等.因此,使用.dylib会使我的客户的安装程序变得更加复杂,因为他们可能需要请求权限在系统文件夹中写东西?
  • 框架可以是私有的并嵌入我的客户包中吗?那么没有人能看到/使用它们吗?

任何建设性的批评/评论/想法都不过是受欢迎的.提前致谢.

亚历克斯

Mik*_*aid 11

.dylib类似于.soLinux.

框架基本上只是将库和标头一起分发的OSX方式.它们是库分发的Application Bundle等价物.

无论使用哪种方法,如果您想确保其他人不使用它们,您应该使用静态库(.a文件)并让您的客户将它们静态链接到他们的应用程序中.

否则,Frameworks之间没有太大区别,.dylib除了先前对OSX开发人员更好.

可以嵌入客户应用程序包中,otool/install_name_tool处理它们都很好.