【问题标题】:creating a .dll on a mac: .dylib or framework?在 Mac 上创建 .dll:.dylib 还是框架?
【发布时间】:2010-11-15 19:07:21
【问题描述】:

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

几个相关问题:

  • 如果我理解正确,.dylib 必须安装在标准 UNIX 目录之一中,例如 /usr/lib 等。因此,使用 .dylib 应该会使我客户的安装程序更加复杂,因为他们可能需要请求权限才能在系统文件夹中写入内容?
  • 框架可以是私有的并嵌入到我客户的捆绑包中吗?所以没有其他人可以看到/使用它们?

非常欢迎任何建设性的批评/cmets/想法。提前致谢。

亚历克斯

【问题讨论】:

  • 您是在寻找拖放式安装,还是提供一个可以处理所有事情的安装程序应用程序 (.pkg)?如果是后者,那么权限应该不是问题,因为我运行的几乎每个安装程序都要求预先输入管理员密码(从而获得管理员权限)。

标签: macos frameworks dylib


【解决方案1】:

.dylib 类似于 Linux 上的.so

框架基本上只是 OSX 将库和头文件一起分发的方式。它们是库分发的等效应用程序包。

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

否则,Framework 和 .dylib 之间并没有太大区别,只是先验对于 OSX 开发人员来说更好。

两者都可以嵌入到客户应用程序包中,otool/install_name_tool 可以很好地处理它们。

【讨论】:

  • 您也可以在 OS X 上使用.so,不是吗?反正我以前见过。
  • @mk12 是的。实际上,OS-X 中的所有 Apache 模块都是.so
  • 嗨!如何将 dylib 嵌入客户应用程序包中?我正在尝试将 OpenCV 库嵌入到 Qt 应用程序中。
猜你喜欢
  • 2012-11-16
  • 1970-01-01
  • 1970-01-01
  • 2015-04-12
  • 1970-01-01
  • 1970-01-01
  • 2011-07-22
  • 2011-11-25
  • 2019-05-18
相关资源
最近更新 更多