题
在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。
为什么这起作用: libtool
和 aclocal.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