Saya mencoba mengkompilasi kode sumber Android di bawah Ubuntu 10.04. Saya mendapat pesan kesalahan,
/ usr / bin / ld: tidak dapat menemukan -lz
Bisakah Anda memberi tahu saya bagaimana cara memperbaikinya? Apa cannot find -lz
artinya Inilah pesan kesalahan lengkapnya:
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
Dan keluaran versi GCC saya:
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
Perpustakaan saya sudah diinstal:
$ sudo apt-get install zlib1g-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
zlib1g-dev is already the newest version.
(Saya mendapatkan itu dari tautan ini .)
Untuk instal x64
zlib1g-dev
.Saya tidak membutuhkan semua lib x86;)
sumber
zlib1g-dev
dapat melalui metapackagelibz-dev
, seperti yang disarankan dalam jawaban lain.zlib-static
.sudo apt-get install libz-dev
di ubuntu.sumber
python-lxml
membutuhkan logika yang terkandung dalam pustaka zlib yang tidak dapat atau tidak disediakannya. Jika tidak dapat mencapai pustaka, baik karena itu hilang atau beberapa perizinan izin, itu tidak akan dapat membangun / berfungsi.python-lxml
tergantung paket apa saja ituProvides: libz-dev
. Program C / C ++ dikompilasi dan dihubungkan dengan pustaka yang menyediakan fungsi, rutinitas, & struktur data. Sistem Unix menggunakan.so
,.a
,.la
file & Jendela digunakan.dll
. Ini adalah file perpustakaan bersama yang dikompilasi, yang berisi rutinitas yang dapat ditautkan oleh program lain dan digunakan untuk mengimplementasikan beberapa fungsionalitas. Untuk contoh ini:libz
mengimplementasikan fungsi kompresi & dekompresi data .libz-dev
adalah paket virtual di Ubuntu (verifikasi ini di sistem Anda dengan :)apt show libz-dev
. Paket lainnyazlib1g-dev
menyediakanlibz-dev
, yang termasuk file perpustakaan bersama/usr/lib/x86_64-linux-gnu/libz.a
, dan file C Header/usr/include/zconf.h
&/usr/include/zlib.h
. Anda dapat melihat konten paket dengan:,dpkg -L zlib1g-dev
yang menunjukkan semua file yang dikandungnya.libz-dev
( juga dalam bahasa Debian ) disediakan olehzlib1g-dev
melaluiProvides: libz-dev
baris Paket Debian dalam file paket sumber Debiandebian/control
. Ini adalah bagaimanaapt
manajer pengemasan tahu untuk menyelesaikanpython-lxml
ketergantungan pada paket virtualenv saat kompilasilibz-dev
melaluizlib1g-dev
.Saya baru saja mengalami masalah ini dan bertentangan dengan solusi yang diterima dari "file make Anda rusak" dan "host tidak boleh dimasukkan dalam kompilasi silang"
Android build menyertakan banyak executable host yang digunakan oleh SDK untuk membangun aplikasi android. Dalam kasus saya, make dihentikan saat membuat zipalign, yang digunakan untuk mengoptimalkan apk sebelum menginstal pada perangkat android.
Menginstal lib32z1-dev memecahkan masalah saya, di bawah Ubuntu Anda dapat menginstalnya dengan perintah berikut:
sumber
Saya memiliki kesalahan yang sama persis, Menginstal zlib-devel memecahkan masalah saya, Ketikkan perintah dan instal paket zlib.
Di linux:
Di Centos:
sumber
Ini berarti Anda memintanya untuk memasukkan pustaka 'libz.a' atau 'libz.so' yang berisi paket kompresi, dan meskipun kompiler menemukan beberapa file, tidak ada yang cocok untuk build yang Anda gunakan.
Anda perlu mengubah parameter build Anda atau Anda perlu menginstal pustaka yang benar atau Anda perlu menentukan di mana pustaka yang benar pada baris perintah tautan dengan
-L/where/it/is/lib
opsi jenis.sumber
Kemungkinan penyebab lain: Anda telah melewatkan --static ke linker, tetapi Anda hanya memiliki versi dinamis libz (libz.so), tetapi bukan versi yang dapat dihubungkan secara statis (libz.a).
sumber
Coba salah satu dari tiga solusi itu. Ini harus bekerja :):
Sebenarnya apa yang hilang bukanlah
lz
perintah, tetapi file pengembangan untukzlib
perpustakaan. Jadi Anda harus menginstalzlib1g-dev
lib untuk mantan untuk mendapatkannya.Untuk sistem seperti rhel7 paketnya adalah
zlib-devel
sumber
Ini akan menunjukkan kepada Anda petunjuk tentang mengapa tautan tidak menginginkan pustaka yang diinstal:
Saya memiliki masalah yang sama dalam konteks yang berbeda: sistem saya /lib/libz.so.1 memiliki dependensi yang tidak puas pada libc karena saya mencoba untuk menautkan kembali pada versi OS yang berbeda.
sumber
untuk opensuse 12.3 (Dartmouth) (i586) sudo zypper instal zlib-devel zlib-devel-static
sumber
Yang lain telah menyebutkan bahwa lib32z-dev memecahkan masalah, tetapi secara umum paket yang diperlukan dapat ditemukan di sini:
http://source.android.com/source/initializing.html Lihat "Menginstal paket yang diperlukan"
sumber