質問

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 オプションは重要です。

アナコンダを使用している場合、これはさまざまなソースからの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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top