我有一个在核心应用程序和界面中使用Boost和CgiCC的
framework.
我该如何对库二进制接口(a.k.a. libtool -version-info)进行版本控制?
当我进行各种更改时,跟踪库本身的更改没有问题.就这样
对我来说很明显我应该如何版本.
但…
Boost和CgiCC库都没有提供任何向后兼容的API / ABI,我的库可能与任意版本Boost和CgiCC链接,所以我不能提供任何关于接口的承诺,所以我不能真正指定-version-info因为即使是
针对不同版本的Boost和CgiCC编译的相同库将不兼容.
所以我该怎么做?我该如何编辑库?
我知道我不应该首先依赖Boost和CgiCC接口,但这是我现有的稳定版本.这个问题在下一个主要版本中得到解决,但我仍然希望保持当前版本,因为它非常有价值.
最佳答案 考虑采用如下的版本控制方案:
http://apr.apache.org/versioning.html
如果您通过自己的库公开依赖库API,那么如果依赖库的api以非向后兼容的方式更改,则必须增加主版本号.更好的策略是根本不暴露内部依赖库.如果你确实需要暴露某种API,那么将它包装起来并抽象出不稳定的依赖库.