2010-06-22 12 views
53

Al construir mi aplicación con KDevelop 3.5 en Ubuntu 10.04, que obtienen los siguientes errores:libtool error de discrepancia de la versión

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 *** 

¿Dónde puedo obtener la versión necesaria de libtool, o cómo puedo recrear aclocal.m4?

Respuesta

102

Intente ejecutar

autoreconf --force --install 
./configure 
make 

en el directorio raíz de su proyecto.

Si eso no funciona, intente ejecutar make maintainer-clean primero y luego pasar al paso 1.

Si aún así no funciona, ejecute make maintainer-clean, a continuación, elimine todos los archivos generados en el directorio raíz de su proyecto; incluyendo aclocal.m4, cualquier directorio m4, cualquier directorio autom4te.cache, configure, Makefile.in, config.h, config.h.in, config.status, libtool, ltmain.sh, etc A continuación, vaya al paso 1.

Por qué esto funciona:libtool y aclocal.m4 son los dos archivos que son generados por tu sistema de compilación. Si no están sincronizados (generados por diferentes versiones de las herramientas de compilación), entonces obtienes este error. Normalmente, eso no debería suceder, pero un ejemplo de algo que puede causarlo es cuando ingresas los archivos generados al control de fuente.

Lo que hace esta solución es eliminar y regenerar todos los archivos autogenerados. Una vez que se borran y regeneran, ya no pueden estar fuera de sincronización.

+4

No quiero editar la respuesta porque no entiendo, pero tuve este error, y 'autoreconf' no fue suficiente.Tuve que correr: 'aclocal; libtoolize --force; auto encabezado; autoconf' – djeikyb

+2

'autoreconf' no hace nada más que ejecutar todos esos programas por usted. Aunque probablemente sea una buena idea agregar la opción '--force', editaré la respuesta. – ptomato

+0

Probé esto con php5 en ubuntu 12.04, pero las cosas empeoraron después de este comando: no puedo ejecutar './Configure' con éxito después de esto – hek2mgl

1

intente ejecutar aclocal

+1

gracias por su respuesta. ¿Podría por favor ser más específico? ¿Qué opciones tengo que usar? ¡Gracias! – mspoerr

9

Trate

autoreconf -i 

La opción -i es importante.

1

quizás haya instalado dos libtools de una versión diferente. Intente apt-get remove all (hasta que no obtenga nada, cuando escriba which libtool en la línea de comandos), luego apt-get install, el que le guste.

+1

No me di cuenta de esto hasta que ejecuto qué libtool y encuentro que apunta a mi instalación anaconda. ¡Gracias! – Yadli

0

resuelvo que desinstalar libtool del sistema y la instalación de aguas arriba: git clone: ​​//git.savannah.gnu.org/libtool.git

sudo apt-get install texinfo autoconf automake make 
./bootstrap 
./configure 
make 
sudo make install
0

Ninguna de las anteriores trabajado.

Entonces esto funcionó:

autoconf -f 
./configure 
make 
0

Ninguna de las anteriores funcionó. Después de que desactivó el entorno de Conda, funcionó:

source deactivate

Cuestiones relacionadas