faltando zlib ao configurar o dropbear

faltando zlib ao configurar o dropbear

quando corri ./configureno dropbear, ele diz faltando zlib; entretanto, já adicionei o prefixo, ou seja, --prefix, para apontar para o diretório correto do zlib, mas o problema ainda persiste.

Estou tentando construir os arquivos no dropbear executando

#!/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

mas parece que não é possível localizar o caminho para o zlib.

Responder1

A opção configure --prefixé usada para informar ao script configure (e aos makefiles resultantes) ondecolocaros programas que serão instalados. Não diz para ondepegararquivos de cabeçalho e bibliotecas.

Para informar ao script de configuração onde obter os arquivos, talvez seja necessário ajustar estas variáveis:

  • CPPFLAGS (para diretórios contendo arquivos de cabeçalho)
  • LDFLAGS (para diretórios contendo bibliotecas)
  • LIBS (para os nomes reais das bibliotecas)

Você pode passar esses valores na linha de comando para configurar, por exemplo,

myheader=$HOME/junk/include
mylibs=$HOME/junk/lib
./configure CPPFLAGS="-I$myheader" LDFLAGS="-L$mylibs"

Acompanhando o esclarecimento (que deveria ter sido incorporado à pergunta)

quando tento construir os arquivos no dropbear executando

#!/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

mas parece que não é possível localizar o caminho para zlib

Você pode ver o problema olhando a fonte doconfigurar 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
    ]
)

Ou seja, ele espera que o valor da opção seja o nome do caminho de um diretório que contém os subdiretórios includee lib(ou um diretório contendo os arquivos que devem estar nesses subdiretórios). O comentário mostra que o valor fornecido era o nome do caminho do include(sub)diretório. A seguirverificação de compilação/linkvai falhar:

AC_CHECK_LIB(z, deflate, , AC_MSG_ERROR([*** zlib missing - install first or check config.log ***]))

A solução provável: altere essa opção para

--with-zlib=$HOME/Hi3536_SDK_V2.0.4.0/zlib

Responder2

Verifique o config.logarquivo. Provavelmente, você encontrará mensagens de erro repetidas sobre o -Wno-pointer-sign.

O que está acontecendo não é que configureo zlib não está sendo encontrado, mas sim que configureestá esperando uma versão mais recente do GCC do que a que você está usando, e o GCC está apresentando um erro na opção de linha de comando não reconhecida. Todosos testes estão falhando, só que o teste para zlib é o primeiro em que a falha é fatal.

Para corrigir isso, edite o configurescript para remover -Wno-pointer-signdos parâmetros CFLAGS (para mim estava na linha 3135).

informação relacionada