私が開発したライブラリAがあります。これをマシンにデプロイすると、対応するlibA.soとlibA-XYZsoが /usr/lib (XYZ はバージョン番号) に配置されます。
ここで、A を使用するライブラリ B を開発します。B をリンクするときは、フラグ -lA を使用します。次に、「ldd libB.so」は私に与えます:
(...)
libA-X.Y.Z.so => /usr/lib/libA-X.Y.Z.so
(...)
私の問題は、A の新しいバージョン (XYZZ) をリリースするときに、B の新しいバージョンもリリースする必要があることです。そうしないと、最新の A をインストールする誰かが、バージョン XYZ を探す B をインストールできなくなります。存在しません。
この問題を解決するにはどうすればよいですか? B に libA-XYZso ではなく libA.so を探すように指示するにはどうすればよいですか? それともそうするのは間違っていますか?安全ではない?
更新 1 : ライブラリ A (他の誰かから継承したもの) は autotools を使用します。
更新 2 : ライブラリ A をビルドすると、「-Wl,-soname -Wl,libA-0.6.1.so」が表示されます。私が正しく理解している場合、それは soname をlibA-0.6.1.soにすることを強制していることを意味します。そうですか?今私の問題は、autotools を使用するプロジェクトでこの動作を変更する方法がわからないことです。しばらくグーグルで検索しましたが、有用な情報が見つかりません。configure.in または Makefile.am を変更する必要がありますか?