J'essaie de compiler le code source Android sous Ubuntu 10.04. Je reçois une erreur disant,
/ usr / bin / ld: impossible de trouver -lz
Pouvez-vous me dire comment puis-je résoudre ce problème? Que veut cannot find -lz
dire? Voici le message d'erreur complet:
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
Et ma sortie de version 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.
J'ai déjà zlib1g-dev
installé la bibliothèque:
$ sudo apt-get install zlib1g-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
zlib1g-dev is already the newest version.
(Je tire cela de ce lien .)
Pour une installation x64
zlib1g-dev
.Je n'ai pas besoin de toutes les bibliothèques x86;)
la source
zlib1g-dev
via le métapaquetlibz-dev
, comme cela a été suggéré dans une autre réponse.zlib-static
.sudo apt-get install libz-dev
dans ubuntu.la source
python-lxml
nécessite largement une logique contenue dans la bibliothèque zlib qu'elle ne peut pas ou ne se fournit tout simplement pas. S'il ne peut pas atteindre la bibliothèque, soit parce qu'il manque, soit parce qu'il y a une barrière d'autorisations, il ne pourra pas construire / fonctionner.python-lxml
dépend de tout package quiProvides: libz-dev
. Les programmes C / C ++ sont compilés et liés à des bibliothèques qui fournissent des fonctions, des routines et des structures de données. Les systèmes Unix utilisent.so
,.a
, les.la
fichiers et l' utilisation de Windows.dll
. Ce sont des fichiers de bibliothèque partagée compilés, qui contiennent des routines avec lesquelles d'autres programmes peuvent se lier et utiliser pour implémenter certaines fonctionnalités. Pour cet exemple:libz
implémente les fonctions de compression et de décompression des données.libz-dev
est un paquet virtuel sur Ubuntu (vérifiez-le sur votre système avec :)apt show libz-dev
. L'autre packagezlib1g-dev
fournitlibz-dev
, qui inclut le fichier de bibliothèque partagée/usr/lib/x86_64-linux-gnu/libz.a
, et les fichiers d'en-tête C/usr/include/zconf.h
&/usr/include/zlib.h
. Vous pouvez afficher le contenu du package avec:,dpkg -L zlib1g-dev
qui affiche tous les fichiers qu'il contient.libz-dev
( également dans Debian ) est fourni parzlib1g-dev
via laProvides: libz-dev
ligne Debian Package dans le fichier du paquet source Debiandebian/control
. C'est ainsi que leapt
gestionnaire d'empaquetage sait résoudre lapython-lxml
dépendance de package virtualenv à la compilation surlibz-dev
viazlib1g-dev
.Je viens de rencontrer ce problème et contrairement à la solution acceptée de "vos fichiers de création sont cassés" et "les inclusions d'hôte ne doivent jamais être incluses dans une compilation croisée"
La version Android comprend de nombreux exécutables hôtes utilisés par le SDK pour créer une application Android. Dans mon cas, le make s'est arrêté lors de la construction de zipalign, qui est utilisé pour optimiser un apk avant de l'installer sur un appareil Android.
L'installation de lib32z1-dev a résolu mon problème, sous Ubuntu, vous pouvez l'installer avec la commande suivante:
la source
J'ai eu exactement la même erreur, l'installation de zlib-devel a résolu mon problème, tapez la commande et installez le package zlib.
Sur Linux:
Sur Centos:
la source
Cela signifie que vous lui avez demandé d'inclure la bibliothèque 'libz.a' ou 'libz.so' contenant un package de compression, et bien que le compilateur ait trouvé certains fichiers, aucun d'entre eux n'était adapté à la construction que vous utilisez.
Vous devez soit modifier vos paramètres de construction, soit installer la bibliothèque appropriée, soit spécifier l'emplacement de la bibliothèque appropriée sur la ligne de commande de liaison avec une
-L/where/it/is/lib
option de type.la source
Une autre cause possible: vous avez passé --static à l'éditeur de liens, mais vous n'avez qu'une version dynamique de libz (libz.so), mais pas une version qui peut être liée statiquement (libz.a).
la source
Essayez l'une de ces trois solutions. Ça doit marcher :):
En fait, ce qui manque, ce n'est pas la
lz
commande, mais les fichiers de développement de lazlib
bibliothèque, vous devez donc installerzlib1g-dev
lib for ex pour l'obtenir.Pour les systèmes comme rhel7, le package est
zlib-devel
la source
Cela vous montrera des indices sur les raisons pour lesquelles l'éditeur de liens ne veut pas de la bibliothèque installée:
J'ai eu le même problème dans un contexte différent: mon système /lib/libz.so.1 avait des dépendances insatisfaites sur la libc parce que j'essayais de refaire le lien sur une version différente de l'OS.
la source
pour opensuse 12.3 (Dartmouth) (i586) sudo zypper install zlib-devel zlib-devel-static
la source
D'autres ont mentionné que lib32z-dev résout le problème, mais en général, les paquets requis peuvent être trouvés ici:
http://source.android.com/source/initializing.html Voir «Installation des packages requis»
la source