autotools libtool

autotools - Error de discrepancia en la versión libtool



(8)

Al construir mi aplicación con kdevelop 3.5 en Ubuntu 10.04, recibo los siguientes errores:

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?


Intenta ejecutar aclocal


Ninguno de los anteriores funcionó. Después de desactivar el entorno de la conda, funcionó:

source deactivate


Ninguno de los anteriores funcionó.

Entonces esto funcionó:

autoconf -f ./configure make


Prueba correr

autoreconf --force --install ./configure make

en el directorio raíz de tu proyecto.

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

Si eso aún no funciona, ejecute make maintainer-clean , luego elimine cada archivo generado 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. Luego vaya al paso 1.

Por qué esto funciona: libtool y aclocal.m4 son ambos archivos que genera su 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.


Resuelvo el libtool de ese sistema de desinstalación y la instalación desde el origen: git clone git: //git.savannah.gnu.org/libtool.git

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


Si está usando Anaconda, esto podría deberse a libtool y autoconf de diferentes fuentes. Puede verificar esto ejecutando

which libtool

which autoconf

Mi libtool era de conda y autoconf era un paquete de sistema. Desinstaló autoconf y lo instaló nuevamente usando conda

apt remove -y autoconf (Ubuntu / Debian)

conda install -c anaconda autoconf

Nota: Es posible que necesite instalar automake también.

conda install -c anaconda automake


Tratar

autoreconf -i

La opción -i es importante.


quizás hayas instalado dos libtools de versiones diferentes. Intenta apt-get remove all (hasta que no obtengas nada, cuando which libtool en la línea de comandos), luego apt-get install el que más te guste.