falta zlib al configurar dropbear

falta zlib al configurar dropbear

cuando ejecuté ./configuredropbear, 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 --prefixse 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 includey 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.logarchivo. Lo más probable es que encuentre mensajes de error repetidos sobre -Wno-pointer-sign.

Lo que sucede no es que configureno se puede encontrar zlib, sino que configurese 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 configurescript para eliminarlo -Wno-pointer-signde los parámetros CFLAGS (para mí, estaba en la línea 3135).

información relacionada