libtool版本不匹配错误
在Ubuntu 10.04上使用kdevelop 3.5构build应用程序时,出现以下错误:
libtool: Version mismatch error. This is libtool 2.2.6 Debian-2.2.6a-4, but the libtool: definition of this LT_INIT comes from libtool 2.2.6b. libtool: You should recreate aclocal.m4 with macros from libtool 2.2.6 Debian-2.2.6a-4 libtool: and run autoconf again. make[2]: *** [wktools4] Error 63 make[2]: Target `all' not remade because of errors. make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 *** Exited with status: 2 ***
我在哪里可以得到所需的libtool版本,或者我如何重新创buildaclocal.m4?
尝试运行
autoreconf --force --install ./configure make
在你的项目的根目录。
如果这不起作用,请尝试先运行make maintainer-clean
,然后转到步骤1。
如果仍然不起作用,请运行make maintainer-clean
,然后删除项目根目录中的每个生成的文件; 包括aclocal.m4
,任何m4
目录,任何autom4te.cache
目录, configure
, Makefile.in
, config.h
, config.h.in
, config.status
, libtool
, ltmain.sh
等,然后转到步骤1。
为什么这是有效的: libtool
和aclocal.m4
都是由您的构build系统生成的文件。 如果它们不同步(由不同版本的构build工具生成),那么你会得到这个错误。 通常情况下不应该发生,但是一个可能导致这种情况的例子是当你将生成的文件签入到源代码控制中。
这个解决scheme所做的是删除并重新生成所有自动生成的文件。 一旦它们被擦除和重新生成,它们就不能再失去同步了。
尝试
autoreconf -i
-i
选项很重要。
尝试运行aclocal
也许你已经安装了两个不同版本的libtools。 尝试apt-get remove all
(直到你什么都没有,当你在命令行中键入which libtool
),然后apt-get install
你喜欢的。
我解决了卸载系统的libtool并从上游安装:git clone git://git.savannah.gnu.org/libtool.git
sudo apt-get install texinfo autoconf automake make ./bootstrap 。/configuration 使 sudo make install
以上都没有奏效。
然后这工作:
autoconf -f ./configure make