libtool Versionskonflikt Fehler
Frage
Beim Bau meiner Anwendung mit kdevelop 3.5 auf Ubuntu 10.04, ich folgende Fehlermeldungen erhalten:
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 ***
Wo kann ich die benötigte Version von libtool bekommen, oder wie kann ich recreate aclocal.m4?
Lösung
Versuchen Sie,
autoreconf --force --install
./configure
make
im Stammverzeichnis Ihres Projektes.
Wenn das nicht funktioniert, versuchen make maintainer-clean
zuerst ausgeführt wird und dann gehen Sie zu Schritt 1
Wenn das immer noch nicht funktioniert, laufen make maintainer-clean
, löschen Sie dann jede erzeugte Datei im Stammverzeichnis des Projekts; einschließlich aclocal.m4
, jedes m4
Verzeichnis, jedes autom4te.cache
Verzeichnis, configure
, Makefile.in
, config.h
, config.h.in
, config.status
, libtool
, ltmain.sh
usw. Dann gehen Sie zu Schritt 1.
Warum dies funktioniert: libtool
und aclocal.m4
sind beide Dateien, die von Ihrem Build-System erzeugt werden. Wenn sie synchron sind aus (erzeugt durch verschiedene Versionen der Build-Tool), dann erhalten Sie diesen Fehler. Normalerweise geschieht das sollte nicht, aber ein Beispiel für etwas, das sie verursachen kann, wenn Sie in generierten Dateien zur Quellcodeverwaltung überprüfen.
Was diese Lösung tut, ist Lösch- und regenerieren alle automatisch generierten Dateien. Sobald sie gelöscht und regeneriert, können sie nicht mehr synchron sein wird.
Andere Tipps
Versuchen
autoreconf -i
Die -i
Option ist wichtig.
Wenn Sie Anaconda verwenden, dann könnte dies aus verschiedenen Quellen zu libtool und autoconf fällig. Sie können dies durch das Ausführen
which libtool
which autoconf
Meine libtool war von Conda und autoconf war ein Systempaket. Uninstalled autoconf und installiert es wieder Conda
mit apt remove -y autoconf
(Ubuntu / Debian)
conda install -c anaconda autoconf
. Hinweis: Sie müssen möglicherweise auto installieren
conda install -c anaconda automake
Vielleicht haben Sie zwei libtools unterschiedlicher Version installiert. Versuchen Sie, apt-get remove all
(bis Sie nichts bekommen, wenn Sie which libtool
in der Befehlszeile), dann apt-get install
die Ihnen gefällt.
Versuchen aclocal
Laufenich lösen, dass die Deinstallation Systems libtool und Installation von stromaufwärts: git clone git: //git.savannah.gnu.org/libtool.git
sudo apt-get install texinfo autoconf automake make ./bootstrap ./configure make sudo make install
Keine der oben gearbeitet.
Dann das funktionierte:
autoconf -f
./configure
make
Keine der oben gearbeitet. Nachdem ich die Conda Umgebung deaktiviert, es hat funktioniert:
source deactivate
Ich begegne auch dieses Problem. In meinem Fall in der Ausgabe von ./autogen.sh gibt es:
libtoolize: Sie sollten den Inhalt der folgenden Dateien zu 'aclocal.m4' hinzufügen: libtoolize: '/aclocal/libtool.m4' libtoolize: '/aclocal/ltoptions.m4' libtoolize: ‚/aclocal/ltversion.m4 'libtoolize: Erwägen Sie 'AC_CONFIG_MACRO_DIRS ([m4])' zu configure.ac, libtoolize: und rerunning libtoolize und aclocal. libtoolize: Erwägen Sie '-I m4' zu ACLOCAL_AMFLAGS in Makefile.am
.ich hängen Sie einfach den Inhalt der drei * .M4 Dateien unter / aclocal / zum aclocal.m4-Datei:
cat <a path>/aclocal/libtool.m4 <a path>/aclocal/ltoptions.m4 <a path>/aclocal/ltversion.m4 >> aclocal.m4
dann machen.
Hier ist der Fehler:
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.
Keine der oben gearbeitet.
Dann das funktionierte:
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