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は存在するがコンパイルできないのに、なぜ誰かに助言できますか?
私はこの問題を抱えていましたが、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
おそらく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 ...