dropbearを設定するとzlibがありません。

dropbearを設定するとzlibがありません。

dropbearを実行すると、./configurezlibが見つからないというメッセージが表示されます。しかし、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

設定オプションは、--prefix設定スクリプト(したがって生成された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

おすすめ記事