4

コア アプリケーションとそのインターフェイスで Boost と CgiCC を使用するフレームワークがあります。

ライブラリ バイナリ インターフェイス (別名 libtool ) をどのようにバージョン管理すればよい-version-infoですか?

さまざまな変更を加えたときに、ライブラリ自体の変更を追跡するのに問題はありません。どのようにバージョンアップするべきかは明らかです。

しかし...

-version-infoBoost と CgiCC の両方のライブラリは下位互換性のある API/ABI を提供しておらず、私のライブラリは非常に任意のバージョンの Boost と CgiCC にリンクされている可能性があるため、インターフェイスについて約束することはできません。Boost と CgiCC の異なるバージョンに対してコンパイルされたライブラリは互換性がありません。

それで…どうしたらいいですか?ライブラリをバージョン管理するにはどうすればよいですか?

そもそも Boost や CgiCC インターフェースに依存すべきではないことはわかっていますが、これは既存の安定バージョンでこれまで得られたものです。この問題は次のメジャー リリースで対処されますが、非常に価値があるため、現在のリリースを維持したいと考えています。

4

2 に答える 2

1

-version-info作成したメジャーマイナーパッチバージョンを率直に採用することはありませんが(これが目的です)、 http:-release //www.gnu.org/software/libtool/manual/html_node/Versioningで説明されている番号付けスキームに準拠する必要があります。 .html(章全体)。

于 2010-11-30T00:35:06.447 に答える
1

次のようなバージョン管理スキームを採用することを検討してください。

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

依存ライブラリAPIを自分のもので公開する場合、依存ライブラリのAPIが下位互換性のない方法で変更された場合は、メジャーバージョン番号をインクリメントする必要があります。より良い戦略は、内部依存ライブラリをまったく公開しないことです。ある種のAPIを公開する必要がある場合は、それをラップして、不安定な依存ライブラリを抽象化します。

于 2010-04-17T13:07:03.880 に答える