Macos 在mac:.dylib或framework上创建.dll?

Macos 在mac:.dylib或framework上创建.dll?,macos,frameworks,dylib,Macos,Frameworks,Dylib,我需要为我们的一个客户创建一个Mac版本的库。我不太熟悉Mac上的动态库,但据我所知,我有两个选择:。动态库或框架。最好的选择是什么?为什么? 几个相关问题: 如果我理解正确,.dylib必须安装在标准UNIX目录之一,如/usr/lib等。因此,使用.dylib应该会使客户的安装程序更加复杂,因为他们可能需要请求权限才能在系统文件夹中写入内容 框架可以是私有的并嵌入到我的客户包中吗?这样就没有其他人可以看到/使用它们了 任何建设性的批评/评论/想法都非常受欢迎。提前谢谢 Alex.dyli

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

几个相关问题:

  • 如果我理解正确,.dylib必须安装在标准UNIX目录之一,如/usr/lib等。因此,使用.dylib应该会使客户的安装程序更加复杂,因为他们可能需要请求权限才能在系统文件夹中写入内容
  • 框架可以是私有的并嵌入到我的客户包中吗?这样就没有其他人可以看到/使用它们了
任何建设性的批评/评论/想法都非常受欢迎。提前谢谢


Alex

.dylib
与Linux上的
类似

框架基本上只是将库和头一起分发的OSX方式。它们是与库分发相当的应用程序包

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

除此之外,框架和
.dylib
之间并没有太大区别,只是前者更适合OSX开发人员


可以嵌入到客户应用程序包中,
otool/install\u name\u工具
可以很好地处理这两个问题。

您正在考虑拖放安装,还是提供一个可以处理所有问题的安装程序应用程序(.pkg)?如果是后者,那么权限应该不会有问题,因为我运行的几乎每个安装程序都要求预先输入管理员密码(从而获得管理员权限)。您可以使用
。所以在OSX上也可以使用
,对吗?反正我以前见过。@mk12是的。实际上,OS-X中的所有Apache模块都是
。所以
嗨!如何将动态库嵌入到客户应用程序包中?我正在尝试将OpenCV库嵌入到Qt应用程序中。