我对libtool的东西相当陌生。 我有一个问题,构build我的项目需要libtool 1.5,但我的系统上的默认libtool(debian,squeeze)是2.2。 我所做的是我从源代码安装了libtool 1.5,并把它放到/ usr / local。 我的PATHvariables首先select/ usr / local / binpath。
当运行autogen时,我可以看到它“看到”libtool 1.5。 但是,当我运行configure脚本时,版本2.2的libtool脚本出现在我的build目录中。 我不知道它来自哪里,因为我使用包pipe理器卸载libtool 2.2。
你能build议如何解决这个问题吗? 在我的生成文件夹中生成的libtool脚本如何? 什么是与ltmain.sh的关系?
谢谢,维亚切斯拉夫
简单的解决方案可能是:
$ ./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的副本。