отсутствует zlib при настройке dropbear

отсутствует zlib при настройке dropbear

при запуске ./configuredropbear он выдает сообщение об отсутствии zlib; однако я уже добавил префикс, т. е. --prefix, чтобы указать на правильный каталог для zlib, но проблема все еще сохраняется.

Я пытаюсь собрать файлы в dropbear, запустив

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

но, похоже, он не может определить локальный путь к zlib.

решение1

Параметр configure --prefixиспользуется для указания скрипту configure (и полученным файлам makefile), гдепомещатьпрограммы, которые будут установлены. Он не говорит, гдеполучатьзаголовочные файлы и библиотеки.

Чтобы указать скрипту конфигурации, где брать файлы, вам, возможно, придется настроить следующие переменные:

  • CPPFLAGS (для каталогов, содержащих заголовочные файлы)
  • LDFLAGS (для каталогов, содержащих библиотеки)
  • LIBS (для реальных названий библиотек)

Вы можете передать эти значения в командной строке для настройки, например,

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

В продолжение разъяснения (которое следовало включить в вопрос)

когда я пытаюсь создать файлы в dropbear, запустив

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

но похоже, что он не может определить локальный путь к zlib

Вы можете увидеть проблему, посмотрев на источникнастроить скрипт:

# 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
    ]
)

То есть, он ожидает, что значение параметра будет именем пути к каталогу, который содержит как includeи libподкаталоги (или каталог, содержащий файлы, которые, как ожидается, будут находиться в этих подкаталогах). Комментарий показывает, что заданное значение было именем пути к include(под)каталогу. Следующийпроверка компиляции/линковкине удастся:

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

Вероятное решение: изменить эту опцию на

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

решение2

Проверьте config.logфайл. Скорее всего, вы обнаружите повторяющиеся сообщения об ошибках -Wno-pointer-sign.

Проблема не в том, что configureне удаётся найти zlib, а в том, что configureожидается более новая версия GCC, чем та, которую вы используете, и GCC выдаёт ошибку из-за нераспознанного параметра командной строки. Всетесты проваливаются, просто тест zlib — первый, где провал оказывается фатальным.

Чтобы это исправить, отредактируйте configureскрипт, удалив -Wno-pointer-signиз параметров CFLAGS (у меня это было в строке 3135).

Связанный контент