1. ホーム
  2. autotools

libtool バージョン不一致エラー

2023-11-07 06:53:26

質問

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 は両方ともビルドシステムによって生成されるファイルです。もしこれらが同期していない(異なるバージョンのビルドツールで生成された)場合、このエラーが発生します。通常は発生しないはずですが、発生する可能性のある例として、生成されたファイルをソース コントロールにチェックインしたときが挙げられます。

このソリューションが行うことは、すべての自動生成されたファイルを削除して再生成することです。いったん消去して再生成すれば、もう同期が外れることはありません。