在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 ***

我在哪里可以获得所需版本的libtool,或者如何重新创建aclocal.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。

为什么这起作用: libtoolaclocal.m4 这两个文件都是由您的构建系统生成的。如果它们不超出同步(由构建工具的不同版本生成),则会获得此错误。通常,这不应该发生,但是可能会导致它的示例是当您检查生成的文件以源控制时。

该解决方案的作用是删除和再生所有自动化文件。一旦它们被删除和再生,它们就不再不同步了。

其他提示

尝试

autoreconf -i

-i 选项很重要。

如果您使用的是Anaconda,那么这可能是由于Libtool和AutoConf引起的,来自不同来源。您可以执行

which libtool

which autoconf

我的Libtool来自Conda,AutoConf是系统包。卸载AutoConf并使用Conda再次安装

apt remove -y autoconf (Ubuntu/Debian)

conda install -c anaconda autoconf

注意:您也可能需要安装自动借记。

conda install -c anaconda automake

也许您已经安装了两个不同版本的libtools。尝试 apt-get remove all (直到您一无所获,当您输入时 which libtool 在命令行中),然后 apt-get install 你喜欢的那个。

尝试运行交流

我解决了卸载系统的libtool并从上游安装:git clone git://git.savannah.gnu.org/libtool.git.git

sudo apt-get install texinfo autoconf automake make
./bootstrap
./configure
make
sudo make install

以上都没有用。

然后这起作用:

autoconf -f
./configure
make

以上都没有用。在我停用康达环境之后,它起作用了:

source deactivate

我也遇到这个问题。就我而言,在./autogen.sh的输出中,有:

libtoolize:您应该将以下文件的内容添加到'aclocal.m4':libtoolize:'/aclocal/libtool.m4'libtoolize:'/aclocal/ltoptions.m4''libtoolize:'/aclocal/ltversion.m4'libtoolize:'/aclocal/ltversion.m4'libtoolize:考虑添加'ac_config_macro_dirs([m4])'以配置。AC,libtoolize:并重新使用libtoolize和aclocal。 libtoolize:考虑在makefile.am中将“ -i m4”添加到aclocal_amflags。

我只是将内容附加到aclocal.m4文件下的三个 *.m4文件:

cat <a path>/aclocal/libtool.m4 <a path>/aclocal/ltoptions.m4 <a path>/aclocal/ltversion.m4 >> aclocal.m4 

然后做。

这是错误:

libtool: Version mismatch error.  This is libtool 2.4.2 Debian-2.4.2-1.11, but the
libtool: definition of this LT_INIT comes from libtool 2.4.6.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.2 Debian-2.4.2-1.11
libtool: and run autoconf again.

以上都没有用。

然后这起作用:

wget http://ftpmirror.gnu.org/libtool/libtool-2.4.6.tar.gz -O /root/libtool-2.4.6.tar.gz
tar xzvf /root/libtool-2.4.6.tar.gz -C /root
cp -f /usr/share/libtool/build-aux/ltmain.sh /usr/share/libtool/build-aux/ltmain_sh
cp -f /root/libtool-2.4.6/build-aux/ltmain.sh /usr/share/libtool/build-aux/ltmain.sh

autoreconf -fi
./configure
make
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top