4

我有一个在核心应用程序及其界面中使用 Boost 和 CgiCC的框架。

我应该如何对库二进制接口(又名 libtool -version-info)进行版本控制?

当我进行各种更改时,我可以毫无问题地跟踪库本身的更改。我很清楚我应该如何版本。

但...

Boost 和 CgiCC 库都没有提供任何向后兼容的 API/ABI,而且我的库可能与 Boost 和 CgiCC 的任意版本链接,所以我不能提供关于接口的任何承诺,所以我不能真正指定-version-info,因为即使是相同的针对不同版本的 Boost 和 CgiCC 编译的库将不兼容。

所以我该怎么做?我应该如何版本库?

我知道我不应该首先依赖 Boost 和 CgiCC 接口,但这是我迄今为止对现有稳定版本的了解。这个问题在下一个主要版本中得到解决,但我仍然拥有并希望保持当前版本,因为它非常有价值。

4

2 回答 2

1

考虑采用如下版本控制方案:

http://apr.apache.org/versioning.html

如果您通过自己的 API 公开依赖库 API,那么如果依赖库的 API 以非向后兼容的方式更改,则必须增加主版本号。更好的策略是根本不公开内部依赖库。如果您确实需要公开某种 API,则将其包装并抽象出不稳定的依赖库。

于 2010-04-17T13:07:03.880 回答
1

-version-info不会直接采用您编写的一些主要-次要补丁版本(这就是-release目的),但必须遵守http://www.gnu.org/software/libtool/manual/html_node/Versioning中描述的编号方案.html(整章)。

于 2010-11-30T00:35:06.447 回答