Ошибка сборки Android - PullRequest
       31

Ошибка сборки Android

5 голосов
/ 07 июля 2010

Я следовал инструкциям здесь . После $ repo sync я пытался собрать его с $ make, но получил эту ошибку:

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 

Использование Ubuntu 10.04 LTS. Любая помощь приветствуется.

UPD: Я нашел обсуждение , в котором утверждается, что проблема может заключаться в том, что в моей 32-битной системе у меня есть 64-битные библиотеки.

$ ls -l /usr/lib/libz.so 
lrwxrwxrwx 1 root root 20 2010-07-07 17:08 /usr/lib/libz.so -> /lib/libz.so.1.2.3.3

$ file /lib/libz.so.1.2.3.3
/lib/libz.so.1.2.3.3: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped

Как мне выяснить, если эта libz.so.1.2.3.3 - правильная библиотека, и если мне нужно заменить ее на правильную, как мне это сделать?

Кроме того, $ arch говорит, что у меня есть архитектура i686. Я использую Lenovo ThinkPad SL500 с процессором Core 2 DUO.

Ответы [ 3 ]

3 голосов
/ 09 июля 2010

Теперь все работает, решение было установить lib64z1-dev:

sudo apt-get install lib64z1-dev

Редактировать: теперь есть другая проблема с ClearSilver, описанная здесь и окончательно решена здесь .

1 голос
/ 10 июля 2013

Библиотека libz имеет разные имена в разных дистрибутивах

lib32z1 в системе Debian

1 голос
/ 07 июля 2010

Вам необходимо установить libz.

sudo apt-get install libz-dev
...