75 votes

erreur d'inadéquation de la version de libtool

Lorsque je construis mon application avec kdevelop 3.5 sur Ubuntu 10.04, j'obtiens 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 ?

151voto

ptomato Points 24461

Essayez de courir

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 passez à 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 les fichiers suivants aclocal.m4 tout m4 le répertoire, tout autom4te.cache répertoire, configure , Makefile.in , config.h , config.h.in , config.status , libtool , ltmain.sh etc. Ensuite, passez à l'étape 1.

Pourquoi ça marche : libtool y aclocal.m4 sont tous deux des fichiers générés par votre système de construction. S'ils ne sont pas synchronisés (générés par des versions différentes des outils de construction), vous obtenez cette erreur. Normalement, cela ne devrait pas se produire, mais un exemple de ce qui peut se produire est lorsque vous enregistrez les fichiers générés dans le contrôle de la source.

Cette solution permet de supprimer et de régénérer tous les fichiers générés automatiquement. Une fois qu'ils sont effacés et régénérés, ils ne peuvent plus être désynchronisés.

6 votes

Je ne veux pas modifier la réponse car je ne comprends pas, mais j'ai eu cette erreur, et autoreconf n'était pas suffisant. Je devais courir : aclocal; libtoolize --force; autoheader; autoconf

2 votes

autoreconf ne fait rien d'autre que d'exécuter tous ces programmes pour vous. C'est probablement une bonne idée d'ajouter l'option --force mais je vais modifier la réponse.

0 votes

J'ai essayé cela avec php5 sur ubuntu 12.04, mais les choses ont empiré après cette commande : Je ne suis pas en mesure d'exécuter ./configure avec succès après cette

12voto

Peter Eisentraut Points 12513

Essayez

autoreconf -i

El -i est importante.

3voto

Androideur Points 109

Ce type m'a sauvé la vie : http://www.howtodoityourself.org/2012/05/28/how-to-fix-libtool-version-mismatch-error.html Une solution simple et très claire !

3voto

Johnson Points 1

Vous avez peut-être installé deux libtools de version différente. Essayez de apt-get remove all (jusqu'à ce que vous n'obteniez rien, lorsque vous tapez which libtool dans la ligne de commande), puis apt-get install celui que vous aimez.

2 votes

Je ne m'en suis pas rendu compte jusqu'à ce que je lance libtool et que je découvre qu'il pointe vers mon installation anaconda. Merci !

1voto

ninjalj Points 22026

Essayez de lancer aclocal

1 votes

Merci pour votre réponse. Pourriez-vous être plus précis ? Quelles sont les options que je dois utiliser ? Merci.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X