Ubuntu 库问题

Ubuntu 库问题

我已经问过这个问题所以,但问题似乎可能出在链接器上。

因此,问题是:

我正在尝试使用 构建一个项目$ 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

现在看看这个库:

$ 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

我有:

$ arch
i686

我像这样安装这个库:

sudo apt-get install libz-dev

那么..我该如何解决这个问题?我该如何让 Ubuntu 将来下载正确的库?我实际上不确定:这是真正的问题,还是在其他地方?

我也无法安装一些必需的软件包:

E: Couldn't find package lib32z1-dev
E: Couldn't find package lib32ncurses5-dev

PS Ubuntu 10.04 LTS,运行在联想 ThinkPad SL500、Core 2 DUO CPU 上。

答案1

我在运行 Ubuntu 10.04 上网本版本的 Lenovo Netbook s10e Intel Atom 上也遇到了同样的问题。经过无数个小时在网上搜索答案后,我听说这与 Java6 检查和强制在 32 位系统上使用 64 位 Clearsilver 构建有关。解决方案是回滚位于此处的 clearsilver 路径:http://android.git.kernel.org/?p=platform/external/clearsilver.git;a=commitdiff;h=d36910a8110d8377b22301274d2b5131a732a72b

不幸的是,我不确定具体该如何做。我使用了 repo 中的放弃功能来删除列出的那些 .mk 链接,但并没有改变错误。

非常感谢您的帮助。

答案2

Lucid Lynx 的规范(不是“规范”)包名称是zlib1g-devlibncurses5

只是好奇,这个名字是你发明的libz-dev还是一些文献引导你找到的?

答案3

您的系统似乎正常,但构建过程可能出现问题。make 会告诉您构建时使用的命令吗?

答案4

看来我已经解决了这个问题。我用 sun-jdk5(添加了 Jaunty 的 repo)替换了我的 jdk6,并用它替换了我的默认 jdk6:

sudo update-java-alternatives --set java-1.5.0-sun

我周末一直用笔记本电脑进行编译,现在看来,它成功了。

相关内容