質問
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
オプションは重要です。
アナコンダを使用している場合、これはさまざまなソースからの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
たぶん、あなたは異なるバージョンの2つのLibtoolsをインストールしました。してみてください apt-get remove all
(入力するとき、何も得られないまで which libtool
コマンドラインで)、次に apt-get install
あなたが好きなもの。
Aclocalを実行してみてください
私はそのアンインストールシステムのlibtoolを解決し、上流からインストール:git clone git://git.savannah.gnu.org/libtool.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' configure.ac、libtoolize:and rerunning libtoolize and aclocalに「ac_config_macro_dirs([m4])」を追加することを検討してください。 libtoolize:makefile.amのaclocal_amflagsに '-i m4'を追加することを検討してください。
コンテンツを3つの *.m4ファイルを / aclocal / aclocal.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