2010-06-22 4 views
53

Lors de la construction de mon application avec KDevelop 3.5 sur Ubuntu 10.04, je reçois les erreurs suivantes:libtool erreur d'incompatibilité de version

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?

Répondre

102

Essayez d'exécuter

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

Pourquoi cela fonctionne:libtool et aclocal.m4 sont tous deux fichiers sont générés par votre système de construction. Si elles sont désynchronisées (générées par différentes versions des outils de construction), vous obtenez cette erreur. Normalement cela ne devrait pas arriver, mais un exemple de quelque chose qui peut le provoquer est quand vous vérifiez dans les fichiers générés au contrôle de la source.

Cette solution supprime et régénère 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.

+4

Je ne veux pas éditer la réponse parce que je ne comprends pas, mais j'ai eu cette erreur, et 'autoreconf' ne suffisait pas.Je devais courir: 'aclocal; libtoolize --force; autoheader; autoconf' – djeikyb

+2

'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', je vais éditer la réponse. – ptomato

+0

J'ai essayé ceci avec php5 sur Ubuntu 12.04, mais les choses ont empiré après cette commande: Je ne suis pas capable d'exécuter './Configure' avec succès après cela – hek2mgl

1

Essayez d'exécuter aclocal

+1

Merci pour votre réponse. Pourriez-vous s'il vous plaît être plus précis? Quelles options dois-je utiliser? Merci! – mspoerr

9

Essayez

autoreconf -i 

L'option -i est important.

1

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

+1

N'a pas réalisé cela jusqu'à ce que je cours quel libtool et trouve qu'il pointe vers mon installation anaconda. Merci! – Yadli

0

je résous 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
0

Aucune de ces travaillé.

Ensuite, cela a fonctionné:

autoconf -f 
./configure 
make 
0

Aucune de ces travaillé. Après avoir désactivé l'environnement Conda, il a travaillé:

source deactivate

Questions connexes