我正在开发一个大型项目,它包含一个服务器,一些用于控制可以加载到服务器进程中的设备的插件,以及可以连接到服务器的客户端。我正在寻找构建最终需要存在的框架的最佳实践。
在客户端,服务器和插件之间共享头文件,以及特定于系统每个方面的一些头文件。有时标题只在客户端和服务器,服务器和插件之间共享。类似地,可以在项目的所有三个方面之间共享公共代码,也可以在一个特定方面只需要代码。
项目完成后,我们需要发布一个客户端应用程序和插件开发人员API,供第三方开发。
我不确定如何正确构建支持此功能所需的框架。
我需要有2个独立的框架吗?或者,我可以拥有1个包含所有标题的框架,并提供2个单独的dylib吗?
如果我需要2个独立的框架,我该怎么处理在系统的所有方面之间共享的头文件?我不想将它们复制到每个框架中以避免版本控制可能出现的问题。
第3个仅限标题的框架是否合理?
任何人都可以推荐使用OS X上的Frameworks构建此类事物的最佳实践吗?
答案 0 :(得分:1)
Framework = 库
的库+标头每个框架只需要包含要公开的接口的头文件。即使常用标头用于构建所有三个框架,您也没有义务捆绑它们。
3框架方法没问题,即使其中一个框架只捆绑了公共头文件而根本没有库。示例:如果您在Mac上安装Qt,您将看到它分散在许多框架中,但标题从不在它们之间重复。还有一些框架只包含标题而没有代码(例如QtScript.framework)。