“/ usr / bin / ld : -lz를 찾을 수 없습니다”
Ubuntu 10.04에서 Android 소스 코드를 컴파일하려고합니다. 오류가 발생했습니다.
/ usr / bin / ld : -lz를 찾을 수 없습니다
어떻게 고칠 수 있는지 알려주세요. 무슨 cannot find -lz
뜻입니까? 전체 오류 메시지는 다음과 같습니다.
external/qemu/Makefile.android:1101: warning: overriding commands for target `external/qemu/android/avd/hw-config-defs.h'
external/qemu/Makefile.android:933: warning: ignoring old commands for target `external/qemu/android/avd/hw-config-defs.h'
host SharedLib: libneo_cgi (out/host/linux-x86/obj/lib/libneo_cgi.so)
/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.4.3/../../../libz.so when searching for -lz
/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.4.3/../../../libz.a when searching for -lz
/usr/bin/ld: skipping incompatible /usr/lib/libz.so when searching for -lz
/usr/bin/ld: skipping incompatible /usr/lib/libz.a when searching for -lz
/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/lib/libneo_cgi.so] Error 1
그리고 내 GCC 버전 출력 :
scheung@scheung-virtual-box:/media/EXTDIV/mydroid$ gcc --version
gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
이미 zlib1g-dev
라이브러리가 설치되어 있습니다.
$ sudo apt-get install zlib1g-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
zlib1g-dev is already the newest version.
( 이 링크 에서 가져옵니다 .)
나는 똑같은 오류가 있었고 zlib1g-dev를 설치해도 문제가 해결되지 않았습니다. lib32z1-dev를 설치하면 과거가되었습니다. 64 비트 시스템을 가지고 있으며 32 비트 라이브러리를 원한 것 같습니다.
x64의 경우 zlib1g-dev를 설치하십시오.
sudo apt-get install zlib1g-dev
모든 x86 라이브러리가 필요하지는 않습니다.)
sudo apt-get install libz-dev
우분투에서.
방금이 문제가 발생하여 "메이크 파일이 손상되었습니다"및 "호스트 포함을 크로스 컴파일에 포함해서는 안됩니다"라는 승인 된 솔루션과 반대로
Android 빌드에는 SDK가 Android 앱을 빌드하는 데 사용하는 많은 호스트 실행 파일이 포함되어 있습니다. 내 경우에는 안드로이드 장치에 설치하기 전에 APK를 최적화하는 데 사용되는 zipalign을 빌드하는 동안 make가 중지되었습니다.
lib32z1-dev를 설치하면 내 문제가 해결되었으며 Ubuntu에서 다음 명령으로 설치할 수 있습니다.
sudo apt-get install lib32z1-dev
zlib-devel을 설치하면 문제가 해결되었습니다. 명령을 입력하고 zlib 패키지를 설치하십시오.
리눅스에서 :
sudo apt-get install zlib*
Centos에서 :
sudo yum install zlib*
압축 패키지를 포함하는 라이브러리 'libz.a'또는 'libz.so'를 포함하도록 요청했으며 컴파일러에서 일부 파일을 찾았지만 사용중인 빌드에 적합한 파일은 없었습니다.
빌드 매개 변수를 변경하거나 올바른 라이브러리를 설치해야하거나 -L/where/it/is/lib
유형 옵션으로 링크 명령 행에서 올바른 라이브러리가있는 위치를 지정해야합니다 .
또 다른 가능한 원인 : --static을 링커에 전달했지만 동적 버전의 libz (libz.so) 만 있지만 정적으로 연결할 수있는 버전 (libz.a)은 없습니다.
링커가 설치된 라이브러리를 원하지 않는 이유에 대한 단서가 표시됩니다.
LD_DEBUG=all make ...
다른 컨텍스트에서 동일한 문제가 발생했습니다. 시스템 /lib/libz.so.1은 다른 버전의 OS에서 다시 연결하려고했기 때문에 libc에 대한 종속성이 만족스럽지 않았습니다.
opensuse 12.3 (Dartmouth) (i586) sudo zypper 설치용 zlib-devel zlib-devel-static
이 세 가지 솔루션 중 하나를 시도하십시오. 작동해야합니다 :) :
- sudo apt-get 설치 zlib1g-dev
- sudo apt-get 설치 libz-dev
- sudo apt-get install lib32z1-dev
In fact what is missing is not the lz
command, but the development files for the zlib
library.So you should install zlib1g-dev
lib for ex to get it.
Others have mentioned that lib32z-dev solves the problem, but in general the required packages can be found here:
http://source.android.com/source/initializing.html See "Installing required packages"
Just wanna add that :
i get a similar error once i tried to install Tiramisu Sub modules (install Halide) the error was
read -lz -o bin/libHalide.so
/usr/bin/ld: cannot find -lz
and doing what shared @phedoreanu fixed my pb.
sudo apt-get install zlib1g-dev
So no worries if even this error appear in ur installation of Tiramisu their is a medicine for it ;).
참고URL : https://stackoverflow.com/questions/3373995/usr-bin-ld-cannot-find-lz
'development' 카테고리의 다른 글
PostgreSQL 테이블 이름을 사용할 수 없습니다 (“관계가 존재하지 않습니다”) (0) | 2020.06.09 |
---|---|
iOS에서 프로그래밍 방식으로 스크린 샷을 찍는 방법 (0) | 2020.06.09 |
npm을 사용하여 TypeScript를 최신 버전으로 업데이트하는 방법은 무엇입니까? (0) | 2020.06.09 |
C ++ : 가장 가까운 수의 배수로 올림 (0) | 2020.06.09 |
파서 오류 메시지 : 'TestMvcApplication.MvcApplication'유형을로드 할 수 없습니다 (0) | 2020.06.09 |