【发布时间】:2011-02-01 01:18:34
【问题描述】:
框架和动态库的主要区别是什么
【问题讨论】:
标签: objective-c cocoa macos
框架和动态库的主要区别是什么
【问题讨论】:
标签: objective-c cocoa macos
OS X 框架的核心是一个动态链接库。框架是一个special directory structure 称为“框架包”,其中包含一个或多个版本的动态链接库,以及依赖的框架、资源、元数据等。OS X 上的其他“包”包括 .app 包(其中包含可执行文件以及资源、依赖框架等...)。
【讨论】:
动态库是一个基本概念,大部分独立于特定平台,即您可以谈论 OSX、Linux、Windows 上的动态库,意思是相同的基本事物 - 一段可重定位的目标代码,带有导出的 API 符号,由一种允许平台上的应用程序按需加载和共享它的方式。
框架是 OSX 特定的术语。它是一个包,它定义了一些普遍认可的目录结构,并将动态库、资源、包描述和其他相关内容存储在预定义的位置。这意味着它主要具有 语义 含义,允许开发人员(以及他们创建的工具)以普遍理解的方式引用它。值得注意的是,框架根本不需要包含共享库。
【讨论】:
Anatomy of a Framework 可能有用。具体来说,该示例中提到的Versions/Current/MyFramework 是一个共享库。该部分继续描述框架包中可能存在的其他一些内容。
【讨论】: