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.