web-dev-qa-db-ja.com

armのopenSSHをクロスコンパイルできない、zlibがない

ARM向けにopenSSHをクロスコンパイルしようとしていますが、うまくいかないようです。

これが私の設定パラメータです:

./configure --Host=arm CC=arm-hisiv400-linux-g++ --prefix=/home/aa/Hi3536_SDK_V2.0.4.0/openSSH --with-zlib=/usr/include

checking zlib.h presence... yes
configure: WARNING: zlib.h: present but cannot be compiled
configure: WARNING: zlib.h:     check for missing prerequisite headers?
configure: WARNING: zlib.h: see the Autoconf documentation
configure: WARNING: zlib.h:     section "Present But Cannot Be Compiled"
configure: WARNING: zlib.h: proceeding with the compiler's result
configure: WARNING:     ## ------------------------------------------- ##
configure: WARNING:     ## Report this to [email protected] ##
configure: WARNING:     ## ------------------------------------------- ##
checking for zlib.h... no
configure: error: *** zlib.h missing - please install first or check config.log ***

Zlib.hは存在するがコンパイルできないのに、なぜ誰かに助言できますか?

6
emddev

私はこの問題を抱えていましたが、libz-devをインストールすることで解決しました:

Sudo apt-get install libz-dev

これは、最後に発生したエラーに関連しています(configure: error: *** zlib.h missing - please install first or check config.log ***)。警告が表示される理由はわかりませんが、libz-devを再インストール(またはインストール)することで修正できる場合があります。

私はここで解決策を見つけました: https://stackoverflow.com/a/38277221/4215651

2
MAChitgarha

おそらくconfigureがHost Arch(/usr/include/zlib.h)のzlib.hを見つけたため、これはターゲットArchでは使用できません。詳細については、config.logを参照してください。

同じクロスコンパイラ(configure --Host=arm CC=arm-hisiv400-linux-g++)。あるいは、あなたのディストリビューションはクロスコンパイラに一致するzlib develパッケージを提供しています。

Zlibがすでに別のプレフィックスパスにインストールされている場合は、それについてconfigureに指示する必要がある場合があります。

./configure CFLAGS = -I/path/to/include LDFLAGS = -L/path/to/lib ...

または

./configure PKG_CONFIG_PATH =/path/to/lib/pkgconfig ...

2
rudimeier