macOS 中是否存在与 Windows DLL 功能相当的函数?

macOS 中是否存在与 Windows DLL 功能相当的函数?

DLL 类似于文件夹,但它允许多个程序/可执行文件同时访问它,从而节省内存(我认为)。

Mac 的 DLL 对应物是什么?我查看了 Google Chrome 文件夹~/Library/Application Support,里面没有常规的 Windows Default.dll,只有一个文件夹“Default”,它是一个常规文件,我猜想,里面的内容应该在 DLL 中。

Mac 版本是否提供相同的功能?

答案1

OS X 上与 Windows DLL 等同的是框架 (Cocoa) 或 dylibs (BSD)。系统提供的分别在和/usr/lib/System/Library/Frameworks

您提到的文件夹Library/Application Support类似于Windows 中的文件夹Application Data(或AppRoaming现在的文件夹),包含您的应用程序的个人设置。

虽然我不知道default.dllOS X 上的 Chrome 的对应版本是什么,但应用程序包包含以下内容:

替代文本

从大小猜测,它看起来Google Chrome Framework可能很重要(上面的文件夹Frameworks没有太多有趣的内容)

答案2

OS X、Linux 或任何 POSIX 中都没有真正的 DLL。它们没有区别。

为什么?

  1. 首先,很多 Mac 的东西都是独立的(.app 毕竟只是文件夹)。

  2. Mac OS X(以及 Linux 和其他 *Nixes)中的二进制文件使用极低频(代表可执行文件和库格式)和可执行文件。

您在其中找到的默认文件可能是 ELF 二进制文件。

更新:dmckee 指出 .dylibs 位于马赫-O格式是 Mac 独有的。但是,很难从视觉上区分这两者,因为它们实际上都不需要任何扩展。

答案3

最接近的 Linux 和 Mac 等效物称为“共享对象文件”(通常采用 .so 扩展名)和动态库(通常采用 .dylib 扩展名)。

共享对象在典型的 Linux 系统中被广泛使用。动态库并不那么普遍,因为 .app 格式允许一种非常安全的分发机制来支持多种体系结构,但代价是可执行“文件”较大。

相关内容