dropbear の設定時に zlib が見つからない

dropbear の設定時に zlib が見つからない

dropbear で実行すると./configure、zlib が見つからないというメッセージが表示されます。ただし、zlib の正しいディレクトリを指すようにプレフィックス (つまり、 ) を既に追加しました--prefixが、問題は依然として解決しません。

私は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)に、置くインストールされるプログラム。どこにインストールするかはわかりません。得るヘッダーファイルとライブラリ。

configure スクリプトにファイルを取得する場所を指示するには、次の変数を調整する必要がある場合があります。

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

つまり、オプションの値は、includelibサブディレクトリの両方を含むディレクトリ(またはそれらのサブディレクトリにあると予想されるファイルを含むディレクトリ)のパス名であることを期待しています。コメントは、指定された値が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 のテストが失敗が致命的となる最初のテストであるというだけです。

これを修正するには、スクリプトを編集してCFLAGS パラメータをconfigure削除します(私の場合は 3135 行目でした)。-Wno-pointer-sign

関連情報