faltando zlib ao configurar dropbear

1

quando corri o ./configure no dropbear, diz-se que falta o zlib; no entanto, eu 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 é incapaz de local o caminho para o zlib.

    
por emddev 28.09.2016 / 09:38

2 respostas

0

A opção de configuração --prefix é usada para informar ao script de configuração (e aos arquivos makefiles resultantes) onde colocar os programas que serão instalados. Ele não diz onde obter arquivos de cabeçalho e bibliotecas.

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

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

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"

Acompanhamento do esclarecimento (que deveria ter sido incorporado à pergunta)

when I try to build the files in dropbear by running

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

but it seems that it's unable to local the path to zlib

Você pode ver o problema observando a fonte do script de configuração :

# 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 de caminho de um diretório que contenha os subdiretórios include e 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 diretório include (sub). A seguinte verificação de compilação / link falhará:

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

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

--with-zlib=$HOME/Hi3536_SDK_V2.0.4.0/zlib
    
por 29.09.2016 / 03:11
0

Verifique o arquivo config.log . As probabilidades são que você encontrará mensagens de erro repetidas sobre -Wno-pointer-sign .

O que está acontecendo não é que configure não consiga encontrar o zlib, é que configure está esperando uma versão mais nova do GCC do que você está usando e o GCC está errando na opção de linha de comando não reconhecida. Todos os testes estão falhando, é apenas que o teste do zlib é o primeiro em que a falha é fatal.

Para corrigir isso, edite o script configure para remover -Wno-pointer-sign dos parâmetros CFLAGS (para mim, ele estava na linha 3135).

    
por 04.11.2016 / 23:24