2

私はautotoolsで構築されたプロジェクトを持っており、2つのフォルダーに分割されています。最初のライブラリであるlibはいくつかのライブラリを作成し、2番目のライブラリであるツールはそれらに対するリンクを作成します。
再リンク中にlibtoolがライブラリの名前を次のように変更するため、ビルドは失敗します。

mylib.1.0.0 -> mylib.1.0.0U

名前の変更が行われた後、とにかく、以前の名前は復元されず、新しいmylib.1.0.0も作成されないため、 mylibのようなシンボリックリンクは、余分なUがなくても名前を指し、リンクは失敗します。
これを回避する方法はありますか?または、再リンクをまったく回避するためにさえも?libtoolバージョン1.5.6を使用しています。

4

1 に答える 1

1

どうやら私はそれを手に入れました...
問題は次の構造で簡単に再現できます:

  • libフォルダー、ビルド:
    • リバ
    • libb 、 libaに応じて
  • libb をリンクするsrcフォルダー、ビルドprog

次に、これを lib/Makefile.am で指定する必要があります。

lib_LTLIBRARIES = \
    libb.la \
    liba.la

その時点で liba.so.1.0.0U ファイルが生成されます。代わりに指定する (ライブラリの順序が変更されることに注意してください)

lib_LTLIBRARIES = \
    liba.la \
    libb.la

ビルドは正常に動作します。
いずれにせよ、正しい順序で指定することが最善の方法であることに同意します。私にはまだ不明なのは、これがlibtoolのバグかどうかです...

于 2009-01-06T14:22:54.863 に答える