compiler linux gcc linker

linux - compiler - "/ Usr/bin/ld: no se puede encontrar-lz"



gcc compiler linux (10)

Estoy tratando de compilar el código fuente de Android en Ubuntu 10.04. Me sale un error al decir,

/ usr / bin / ld: no se puede encontrar -lz

¿Puedes decirme cómo puedo solucionarlo? ¿Qué no cannot find -lz significa? Aquí está el mensaje de error completo:

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

Y mi salida de versión 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.

Ya tengo instalada la biblioteca 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.

(Lo entiendo desde este enlace )


Acabo de encontrar este problema y, al contrario de la solución aceptada de "tus archivos make están rotos" y "el host incluye nunca debería incluirse en una compilación cruzada"

La compilación de Android incluye muchos ejecutables de host utilizados por el SDK para crear una aplicación de Android. En mi caso, la marca se detuvo al compilar zipalign, que se usa para optimizar una aplicación antes de instalarla en un dispositivo Android.

Instalando lib32z1-dev resolvió mi problema, en Ubuntu puedes instalarlo con el siguiente comando:

sudo apt-get install lib32z1-dev


Esto le mostrará pistas sobre por qué el enlazador no quiere la biblioteca instalada:

LD_DEBUG=all make ...

Tuve el mismo problema en un contexto diferente: mi sistema /lib/libz.so.1 tenía dependencias insatisfechas en libc porque estaba intentando volver a vincular una versión diferente del sistema operativo.


Otra posible causa: ha pasado: estático al vinculador, pero solo tiene una versión dinámica de libz (libz.so), pero no una versión que se puede vincular estáticamente (libz.a).



Para x64 solo instale zlib1g-dev.

sudo apt-get install zlib1g-dev

No necesito todas las libs x86;)


Significa que le solicitó que incluyera la biblioteca ''libz.a'' o ''libz.so'' que contiene un paquete de compresión, y aunque el compilador encontró algunos archivos, ninguno de ellos era adecuado para la compilación que está utilizando.

Necesita cambiar sus parámetros de compilación o necesita instalar la biblioteca correcta o necesita especificar dónde está la biblioteca correcta en la línea de comando de enlace con una opción de tipo -L/where/it/is/lib .


Tuve exactamente el mismo error y, al igual que usted, la instalación de zlib1g-dev no lo solucionó. La instalación de lib32z1-dev me ayudó a superarlo. Tengo un sistema de 64 bits y parece que quería la biblioteca de 32 bits.


Tuve exactamente el mismo error, instalando zlib-devel resolvió mi problema, escriba el comando e instale el paquete zlib.

En Linux:

sudo apt-get install zlib*

En Centos:

sudo yum install zlib*


para opensuse 12.3 (Dartmouth) (i586) sudo zypper install zlib-devel zlib-devel-static


sudo apt-get install libz-dev en ubuntu.