web-dev-qa-db-ja.com

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

Libtoolの必要なバージョンはどこで入手できますか、またはaclocal.m4を再作成するにはどうすればよいですか?

70
mspoerr

実行してみてください

autoreconf --force --install
./configure
make

プロジェクトのルートディレクトリ。

それでもうまくいかない場合は、make maintainer-clean最初にステップ1に進みます。

それでもうまくいかない場合は、make maintainer-clean、その後、プロジェクトのルートディレクトリで生成されたすべてのファイルを削除します。含むaclocal.m4、 どれか m4ディレクトリ、任意のautom4te.cacheディレクトリ、configureMakefile.inconfig.hconfig.h.inconfig.statuslibtoolltmain.shなど。その後、手順1に進みます。

これが機能する理由:libtoolおよびaclocal.m4は両方とも、ビルドシステムによって生成されるファイルです。それらが同期していない場合(ビルドツールの異なるバージョンによって生成される)、このエラーが発生します。通常、それは起こりませんが、生成されたファイルをソース管理にチェックインするときに発生する可能性のある何かの例です。

このソリューションが行うことは、すべての自動生成されたファイルを削除して再生成することです。それらが消去されて再生成されると、それらはもはや同期できなくなります。

127
ptomato

試してみる

autoreconf -i

-iオプションは重要です。

10

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

7
Foreever

異なるバージョンの2つのlibtoolsをインストールした可能性があります。 apt-get remove all(何も得られないまで、which libtoolコマンドラインで)、apt-get install好きなもの。

3
Johnson

Aclocalを実行してみてください

1
ninjalj

この問題も発生します。私の場合、。/ autogen.shの出力には次のものがあります。

libtoolize:次のファイルの内容を 'aclocal.m4'に追加する必要があります。libtoolize: '/aclocal/libtool.m4' libtoolize: '/aclocal/ltoptions.m4' libtoolize: '/aclocal/ltversion.m4' libtoolize: configure.ac、libtoolize:に「AC_CONFIG_MACRO_DIRS([m4])」を追加し、libtoolizeとaclocalを再実行することを検討してください。 libtoolize:Makefile.amのACLOCAL_AMFLAGSに「-I m4」を追加することを検討してください。

/ aclocal /の下にある3つの* .m4ファイルの内容をaclocal.m4ファイルに追加します。

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

その後、作ります。

0
japrin

上記のどれも機能しませんでした。 conda環境を無効にした後、動作しました:

source deactivate

0
Dawei Yang

上記のどれも機能しませんでした。

その後、これはうまくいきました:

autoconf -f
./configure
make
0
lkraav

ここにエラーがあります:

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
0
gameregeve

システムのlibtoolのアンインストールとアップストリームからのインストールを解決します:git clone git://git.savannah.gnu.org/libtool.git

Sudo apt-get install texinfo autoconf automake make 
 ./ bootstrap 
 ./ configure 
 make 
 Sudo make install
0
Neonigma