libtool .so ファイル名に余分な「U」を追加する
質問
autotools を使用してビルドされたプロジェクトがあり、2 つのフォルダーに分かれています。最初の1つ、 ライブラリ, 、いくつかのライブラリを作成し、2 番目のライブラリを作成します。 ツール, 、それらに対するリンク。
再リンク中に libtool が次のようにライブラリの名前を変更するため、ビルドは失敗します。
mylib.1.0.0 -> mylib.1.0.0U
名前変更が行われた後は、いずれにしても、以前の名前は復元されず、新しい名前も復元されません。 mylib.1.0.0 作成されたので、次のようなシンボリックリンクが マイリブ 余分なものを付けずに名前を指します U そしてリンクが失敗します。
これを回避する方法はありますか?それとも再リンクをまったく避けるためでしょうか?libtoolバージョン1.5.6を使用しています。
解決
どうやらわかったようで…
この問題は、次の構造で簡単に再現できます。
- ある ライブラリ フォルダー、建物:
- リバ
- リブ, 、 に応じて リバ
- ある 送信元 フォルダ、建物 プログレ, 、libをリンクします
次に、これを lib/Makefile.am で指定する必要があります。
lib_LTLIBRARIES = \
libb.la \
liba.la
その時点で liba.so.1.0.0U ファイルが生成されます。代わりに指定する (ライブラリの順序が変更されることに注意してください)
lib_LTLIBRARIES = \
liba.la \
libb.la
ビルドは正常に動作します。
いずれにせよ、正しい順序で指定することが最善の策であることに私は同意します。私にとってまだ不明なのは、これが libtool のバグなのかどうかです...
所属していません StackOverflow