arm용 openSSH를 크로스 컴파일할 수 없습니다. zlib가 없습니다.

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가 존재하는데 왜 컴파일할 수 없는지 누가 말해 줄 수 있나요?

답변1

zlib 개발 파일을 설치하여 이 문제를 해결했습니다.

# Debian-based
sudo apt install libz-dev

# Fedora-based
sudo dnf install zlib-devel

이는 마지막으로 발생한 오류와 관련이 있습니다.

configure: error: *** zlib.h missing - please install first or check config.log ***

받은 경고도 이를 통해 해결할 수 있습니다. 그러나 이미 설치한 경우 다시 설치하거나 업데이트해 볼 수 있습니다.

  • 보너스:시스템에서 필요한 개발 공유 라이브러리를 찾는 한 가지 방법은 어떤 패키지가 특정 파일을 제공하는지 패키지 관리자에게 문의하는 것입니다. 예를 들어 dnf providesFedora는 다음과 같은 상황에서 도움을 줄 수 있습니다.

    $ sudo dnf provides /usr/include/zlib.h
    ...
    
    zlib-devel-1.2.11-30.fc35.x86_64 : Header files and libraries for Zlib development
    Repo        : @System
    Matched from:
    Filename    : /usr/include/zlib.h
    
    ...
    

해결책을 찾았습니다 감사합니다이 답변.

답변2

호스트 아치(/usr/include/zlib.h)에 대해 zlib.h가 발견되었을 가능성이 있지만 configure대상 아치에는 사용할 수 없습니다. 자세한 내용은 config.log를 참조하세요.

zlib을 빌드하려면 동일한 크로스 컴파일러( )를 사용해야 합니다 configure --host=arm CC=arm-hisiv400-linux-g++. 또는 배포판이 크로스 컴파일러와 일치하는 zlib devel 패키지를 제공할 수도 있습니다.

다른 접두사 경로에 zlib를 설치한 경우 구성에 이를 알려야 할 수도 있습니다.

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

또는

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

관련 정보