4

私はlibtoolのことはまったく初めてです。プロジェクトのビルドには libtool 1.5 が必要ですが、私のシステム (debian、squeeze) のデフォルトの libtool は 2.2 です。私がしたことは、ソースから libtool 1.5 をインストールし、それを /usr/local に配置したことです。私の PATH 変数は、最初に /usr/local/bin パスを選択します。

autogen を実行すると、libtool 1.5 が「見える」ことがわかります。しかし、configure スクリプトを実行すると、バージョン 2.2 の libtool スクリプトがビルド ディレクトリに表示されます。パッケージマネージャーを使用して libtool 2.2 をアンインストールしたため、どこから来たのかわかりません。

問題の解決方法を教えてください。libtool スクリプトはビルド フォルダーにどのように生成されますか? ltmain.sh との関係は?

ありがとう、ヴィャチェスラフ

4

1 に答える 1

7

簡単な解決策は次のとおりです。

$ ./configure LIBTOOL=/usr/local/bin/libtool ...

ただし、古い libtool を使用している場合は、古い autoconf も使用している可能性があります。その場合は、次のことを行う必要があります。

$ LIBTOOL=/usr/local/bin/libtool ./configure ...

または、csh またはそのバリアントを使用している場合:

$ env LIBTOOL=/usr/local/bin/libtool ./configure ...

ビルド ディレクトリの libtool は、ltmain.sh から生成されます。ファイル config.status (configure によって生成される) は、入力として ltmain.sh を使用して libtool を生成する sed スクリプトを実行します。ltmain.sh は、autoreconf を介して libtoolize を実行すると、libtoolize によってソース ディレクトリにコピーされます。autoreconf が実際に /usr/local/bin で libtool 1.5 を認識している場合、ソース ディレクトリの ltmain.sh は /usr/local/share/libtool/ltmain.sh のコピーである必要があります。

于 2011-11-15T12:54:27.090 に答える