cuando ejecuté ./configure
dropbear, dice que falta zlib; sin embargo, ya agregué el prefijo, es decir, --prefix
, para señalar el directorio correcto para zlib, pero el problema aún persiste.
Estoy intentando compilar los archivos en dropbear ejecutando
#!/bin/bash
./configure --prefix=$HOME/Hi3536_SDK_V2.0.4.0/dropbear \
--with-zlib=$HOME/Hi3536_SDK_V2.0.4.0/zlib/include \
--host=arm CC=arm-hisiv400-linux-gcc
pero parece que no puede localizar la ruta a zlib.
Respuesta1
La opción de configuración --prefix
se utiliza para indicarle al script de configuración (y a los archivos MAKE resultantes) dóndeponerlos programas que se instalarán. No dice dondeconseguirarchivos de encabezado y bibliotecas.
Para indicarle al script de configuración dónde obtener los archivos, es posible que deba ajustar estas variables:
- CPPFLAGS (para directorios que contienen archivos de encabezado)
- LDFLAGS (para directorios que contienen bibliotecas)
- LIBS (para los nombres reales de las bibliotecas)
Puede pasar esos valores en la línea de comandos para configurar, por ejemplo,
myheader=$HOME/junk/include
mylibs=$HOME/junk/lib
./configure CPPFLAGS="-I$myheader" LDFLAGS="-L$mylibs"
Seguimiento de la aclaración (que debería haberse incorporado a la pregunta)
cuando intento compilar los archivos en dropbear ejecutando
#!/bin/bash ./configure --prefix=$HOME/Hi3536_SDK_V2.0.4.0/dropbear --with-zlib=$HOME/Hi3536_SDK_V2.0.4.0/zlib/include --host=arm CC=arm-hisiv400-linux-gcc
pero parece que no se puede localizar la ruta a zlib
Puede ver el problema consultando la fuente delconfigurar script:
# Check if zlib is needed
AC_ARG_WITH(zlib,
[ --with-zlib=PATH Use zlib in PATH],
[
# option is given
if test -d "$withval/lib"; then
LDFLAGS="-L${withval}/lib ${LDFLAGS}"
else
LDFLAGS="-L${withval} ${LDFLAGS}"
fi
if test -d "$withval/include"; then
CPPFLAGS="-I${withval}/include ${CPPFLAGS}"
else
CPPFLAGS="-I${withval} ${CPPFLAGS}"
fi
]
)
Es decir, espera que el valor de la opción sea la ruta de acceso de un directorio que contenga los subdirectorios include
y lib
(o un directorio que contenga los archivos que se espera que estén en esos subdirectorios). El comentario muestra que el valor dado era el nombre de ruta del include
(sub)directorio. La siguientecompilar/comprobar enlacefallará:
AC_CHECK_LIB(z, deflate, , AC_MSG_ERROR([*** zlib missing - install first or check config.log ***]))
La solución probable: cambie esa opción a
--with-zlib=$HOME/Hi3536_SDK_V2.0.4.0/zlib
Respuesta2
Verifique el config.log
archivo. Lo más probable es que encuentre mensajes de error repetidos sobre -Wno-pointer-sign
.
Lo que sucede no es que configure
no se puede encontrar zlib, sino que configure
se espera una versión de GCC más nueva que la que estás usando y GCC genera un error en la opción de línea de comandos no reconocida. Todolas pruebas están fallando, es sólo que la prueba de zlib es la primera en la que el fallo es fatal.
Para solucionar este problema, edite el configure
script para eliminarlo -Wno-pointer-sign
de los parámetros CFLAGS (para mí, estaba en la línea 3135).