libtool版本不匹配错误

msp*_*err 72 autotools libtool

在Ubuntu 10.04上使用kdevelop 3.5构建我的应用程序时,我收到以下错误:

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 ***
Run Code Online (Sandbox Code Playgroud)

我在哪里可以获得所需的libtool版本,或者如何重新创建aclocal.m4?

pto*_*ato 133

试试跑步

autoreconf --force --install
./configure
make
Run Code Online (Sandbox Code Playgroud)

在项目的根目录中.

如果这不起作用,请先尝试运行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都是由构建系统生成的文件.如果它们不同步(由不同版本的构建工具生成),则会出现此错误.通常这不应该发生,但是可以导致它的一个例子是当您将生成的文件签入源代码控制时.

此解决方案的作用是删除并重新生成所有自动生成的文件.一旦它们被擦除和重新生成,它们就不会再不同步了.

  • 我不想编辑答案,因为我不明白,但我有这个错误,并且`autoreconf`是不够的.我不得不跑:`aclocal; libtoolize --force; autoheader就把; autoconf` (5认同)
  • 但为什么这有帮助呢?真正的版本不匹配是什么? (4认同)
  • `autoreconf`除了为你运行所有这些程序之外别无其他.尽管添加`--force`选项可能是个好主意,我会编辑答案. (2认同)

Pet*_*aut 10

尝试

autoreconf -i
Run Code Online (Sandbox Code Playgroud)

-i选项是非常重要的.


For*_*ver 7

如果您使用的是Anaconda,那么这可能是由于来自不同来源的libtool和autoconf.您可以通过执行来检查

which libtool

which autoconf

我的libtool来自conda,autoconf是一个系统包.卸载autoconf并使用conda再次安装

apt remove -y autoconf (Ubuntu的/ Debian的)

conda install -c anaconda autoconf

注意:您可能还需要安装automake.

conda install -c anaconda automake