Bonjour,

Je suis en train d'essayer de récupérer les sources de l'OS open source android et j'ai un problème que je n'arrive pas à surmonter (j'en ai déjà vaincu 5 mais la j'ai du mal :-?) :

Lorsque je lance la commande make depuis mon shell, j'obtiens ce message d'erreur :

[root@localhost Mydroid]# make
build/core/product_config.mk:229: WARNING: adding test OTA key
host Executable: aapt (out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt)
/usr/bin/ld: skipping incompatible /usr/lib64/libz.so when searching for -lz
/usr/bin/ld: cannot find -lz
collect2: ld a retourné 1 code d'état d'exécution
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Erreur 1

Après moults recherches sur forums android, google etc.. je n'ai toujours pas trouvé comment résoudre cette erreur.

Quelqu'un aurait-il une piste, un autre thread etc.. qui pourrait m'aider à comprendre cette erreur?
quelle est l'architecture de cela?
Je pense qu'il manque zlib-devel

++
@remi -> Bien joué, j'avais installé ce paquet déjà, mais en 64 bits! :-D L'installation du paquet en i386 à résolu le problème. (oui j'ai oublié de préciser que je suis en x86_64).Merci!

@n1ck0 -> Merci pour ton intérêt!🙂

Maintenant j'ai un autre problème, qui ressemble fortement à celui que l'on vient de résoudre (toujours en lançant la commande make) :

/usr/bin/ld: skipping incompatible /usr/lib64/libX11.so when searching for -lX11
/usr/bin/ld: cannot find -lX11
collect2: ld a retourné 1 code d'état d'exécution
make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/emulator] Erreur 1

Je vais chercher de mon côté (à moins que remi n'ai encore LA solution divine?😉) et si je bloque je lancerais une nouvelle discussion pour ce problème.
yum provides \*libX11.so
te fournira la réponse...
Je me répond à moi-même :
il faut se rendre dans /usr/lib en root et créer un lien symbolique : ln -s libX11.so.6 libX11.so

Maintenant j'ai ce problème (qui correspond trait pour trait au précédent):

/usr/bin/ld: skipping incompatible /usr/lib64/libreadline.so when searching for -lreadline
/usr/bin/ld: cannot find -lreadline
collect2: ld a retourné 1 code d'état d'exécution
make: *** [out/host/linux-x86/obj/EXECUTABLES/sqlite3_intermediates/sqlite3] Erreur 1

Il existe bien un libreadline.so dans /usr/lib64, mais pas dans /usr/lib, du coup je ne peux pas créer un lien symbolique comme pour le précédent...:-?

EDIT : pardon pikachu je n'avais pas vu ta réponse pour le problème de libX11 ^^ Merci pour ton aide!

Re EDIT : Et Re-merci Pikachu, après avoir fait ta commande sur libreadline, j'ai installé le paquet manquant : yum install readline-devel.i386 et la compilation est repartie...jusqu'au prochain problème héhé! :lol:
erkenbrand wrote:Je me répond à moi-même :
il faut se rendre dans /usr/lib en root et créer un lien symbolique : ln -s libX11.so.6 libX11.so
Certainement pas !

Les fichier .so sont fournit, avec les entêtes de compilation dans les paquets -devel.

Créer ce lien soit même est une très mauvaise idée.
Et de toute manière la compilation ne fonctionnera pas sans les entêtes.

++
@remi -> Ah? C'est la solution qui est donnée partout sur les forums spécialisés Android (que par des utilisateurs d'Ubuntu, aucun fedoriste déclaré à l'horizon à part moi 😉). Ma foi, pour l'instant ça a l'air de marcher, mais si ça plante, je détruirai le lien et j'installerais le paquet devel, comme tu me le conseilles.

En tout cas merci pour ton aide! C'est toujours frustrant de tomber sur des problèmes de compil avec peu ou pas d'informations sur le web, mais je sais que je peux toujours compter sur la communauté ici! 😉
Bon, ben ça a l'air d'avoir compilé comme il faut.

Pour ceux qui voudrait également récupérer les sources d'Android, j'ai posté sur le groupe Android-Platform ( dispo ici :Android-Platform ) la liste des problèmes que j'ai rencontré et leur solution. Il suffit de rechercher le poste qui a pour nom : " This is how I managed to finally compile the source code on Fedora 9 64 bits ".

Encore merci pour votre aide à tous!