libtool erreur d'incompatibilité de version
Question
Lors de la construction de mon application avec KDevelop 3.5 sur Ubuntu 10.04, je reçois les erreurs suivantes:
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 ***
Où puis-je obtenir la version nécessaire de libtool, ou comment puis-je Recréer aclocal.m4?
La solution
Essayez de lancer
autoreconf --force --install
./configure
make
dans le répertoire racine de votre projet.
Si cela ne fonctionne pas, essayez d'exécuter make maintainer-clean
d'abord, puis passer à l'étape 1.
Si cela ne fonctionne toujours pas, exécutez make maintainer-clean
, puis supprimez tous les fichiers générés dans le répertoire racine de votre projet; y compris aclocal.m4
, un répertoire de m4
, un répertoire de autom4te.cache
, configure
, Makefile.in
, config.h
, config.h.in
, config.status
, libtool
, ltmain.sh
, etc. Ensuite, allez à l'étape 1.
Pourquoi cette œuvres: libtool
et aclocal.m4
sont les deux fichiers qui sont générés par votre système de construction. Si elles ne sont pas synchronisés (générés par les différentes versions des outils de construction), vous obtenez cette erreur. Normalement, cela ne devrait pas se produire, mais un exemple de quelque chose qui peut provoquer est lors de l'enregistrement dans les fichiers générés au contrôle de source.
Qu'est-ce que cette solution n'est de supprimer et de régénérer tous les fichiers générées automatiquement. Une fois qu'ils sont effacés et régénérés, ils ne peuvent pas être désynchronisé plus.
Autres conseils
Essayez
autoreconf -i
L'option -i
est important.
Si vous utilisez Anaconda, cela pourrait être dû à libtool et autoconf de différentes sources. Vous pouvez vérifier cela en exécutant
which libtool
which autoconf
Mon libtool était de Conda et autoconf était un ensemble de système. Désinstallés autoconf et installé à nouveau en utilisant Conda
apt remove -y autoconf
(Ubuntu / Debian)
conda install -c anaconda autoconf
Note:. Vous devrez peut-être installer automake trop
conda install -c anaconda automake
peut-être que vous avez installé deux libtools de version différente. Essayez de apt-get remove all
(jusqu'à ce que vous obtenez rien, lorsque vous tapez which libtool
dans la ligne de commande), apt-get install
alors celui qui vous plaît.
Essayez de lancer aclocal
Je résoudre que la désinstallation de libtool de système et l'installation de l'amont: git clone git: //git.savannah.gnu.org/libtool.git
sudo apt-get install texinfo autoconf automake make ./bootstrap ./configure make sudo make install
Aucune de ces travaillé.
Ensuite, cela a fonctionné:
autoconf -f
./configure
make
Aucune de ces travaillé. Après avoir désactivé l'environnement Conda, il a travaillé:
source deactivate
Je rencontre également ce problème. Dans mon cas, la sortie de ./autogen.sh, il y a:
libtoolize: Vous devez ajouter le contenu des fichiers suivants à 'aclocal.m4': libtoolize: '/aclocal/libtool.m4' libtoolize: '/aclocal/ltoptions.m4' libtoolize: « /aclocal/ltversion.m4 'libtoolize: Pensez à ajouter 'AC_CONFIG_MACRO_DIRS ([m4])' à configure.ac, libtoolize: et réexécution libtoolize et aclocal. libtoolize: Pensez à ajouter '-I m4' à ACLOCAL_AMFLAGS dans Makefile.am
.Je viens ajouter le contenu des trois * .m4 fichiers sous / aclocal / au fichier aclocal.m4:
cat <a path>/aclocal/libtool.m4 <a path>/aclocal/ltoptions.m4 <a path>/aclocal/ltversion.m4 >> aclocal.m4
puis faire.
Voici l'erreur:
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.
Aucune de ces travaillé.
Ensuite, cela a fonctionné:
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