2011-11-15 18 views
4

私はlibtoolのものにはかなり新しいです。私のプロジェクトをビルドするにはlibtool 1.5が必要ですが、私のシステム(debian、squeeze)のデフォルトのlibtoolは2.2です。 私は、ソースからlibtool 1.5をインストールし、それを/ usr/localに入れました。私のPATH変数は、まず/ usr/local/binパスを選択します。libtoolカスタムスクリプトはconfigureによってどのように生成されますか?

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

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

おかげで、 ヴャチェスラフ

+2

最初の問題は、1.5を使用するための要件です!真剣に、現代のlibtoolがなぜうまくいかず、その問題を解決したかを理解する方がずっと良いでしょう。 –

答えて

7

は簡単な解決策は次のようになります。

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

しかし、あなたはあなたがする必要があります。その場合には、あなたにも古代のautoconfを使用している場合があり、古代のlibtoolを使用している場合、操作を行います。

 
$ 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のコピーでなければなりません。

+0

返事をありがとう。物事は今より明確になっています。 – Vyacheslav

+0

btw、私は別の方法で問題を解決することができました: "autoreconf --force --install --symlink" – Vyacheslav

関連する問題