2011-11-15 68 views
4

我很新的libtool的東西。我有一個問題,即構建我的項目需要libtool 1.5,但我係統上的默認libtool(debian,squeeze)爲2.2。 我所做的是我從源代碼安裝了libtool 1.5,並將其放入/ usr/local。我的PATH變量首先選擇/ usr/local/bin路徑。配置如何生成libtool自定義腳本?

當運行autogen時,我可以看到它「看到」libtool 1.5。但是,當我運行configure腳本時,版本2.2的libtool腳本出現在我的構建目錄中。我不知道它來自哪裏,因爲我使用包管理器卸載了libtool 2.2。

你能提出建議如何解決問題嗎? libtool腳本如何在我的build文件夾中生成?與ltmain.sh有什麼關係?

感謝, 維亞切斯拉夫

+2

你的第一個問題是要求使用1.5!說真的,你會更好地弄清楚爲什麼現代libtool不起作用並解決這個問題。 –

回答

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生成)運行一個sed腳本,該腳本使用ltmain.sh作爲輸入來生成libtool。當通過autoreconf運行libtoolize時,ltmain.sh被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