【问题标题】:Organising frameworks for client, server, and plugins为客户端、服务器和插件组织框架
【发布时间】:2011-09-11 01:12:21
【问题描述】:

我正在处理一个大型项目,该项目包括一个服务器、一些用于控制可以加载到服务器进程中的设备的插件,以及可以连接到服务器的客户端。我正在寻找构建最终需要存在的框架的最佳实践。

有一些头文件在客户端、服务器和插件之间共享,还有一些特定于系统各个方面的头文件。有时标头仅在客户端和服务器之间或服务器和插件之间共享。类似地,项目的所有三个方面都可以共享公共代码,也有仅在一个特定方面需要的代码。

项目完成后,我们需要发布一个客户端应用程序和插件开发者 API 供第三方开发。

我不确定如何正确构建支持这一点所需的框架。

我需要有 2 个独立的框架吗?或者我可以拥有 1 个包含所有标头并提供 2 个独立 dylib 的框架吗?

如果我需要有 2 个独立的框架,我该如何处理在系统各个方面共享的头文件?我不想将它们复制到每个框架中以避免版本控制可能出现的问题。

第 3 个仅包含标头的框架会是一个合理的选择吗?

谁能推荐一个在 OS X 上使用框架构建这种东西的最佳实践?

【问题讨论】:

    标签: objective-c xcode macos frameworks mac-frameworks


    【解决方案1】:

    框架 = 库 + 那个库的标头

    每个框架只需要包含您要公开的接口的头文件。即使使用公共标头构建所有三个框架,您也没有义务捆绑它们。

    即使其中一个框架仅捆绑通用标头而根本没有库,也可以使用 3 框架方法。示例:如果您在 Mac 上安装 Qt,您会看到它在许多框架中拆分,但标头不会在它们之间重复。还有一些框架只包含头文件而没有代码(例如 QtScript.framework)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多