编译错误 /usr/bin/ld:找不到 -lz

编译错误 /usr/bin/ld:找不到 -lz

当我尝试在我的 Ubuntu 12.04.3 64 位机器上编译 fasta36 时遇到了这个错误:

/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
make: *** [fasta36] Error 1

我使用了以下命令:

make -f ../make/Makefile.linux64_sse2

我猜可能是由于缺少或符号链接损坏,因此尝试查找正确的文件。我在/usr/lib目录中看到以下文件:

lrwxrwxrwx 1 root root     16 Nov 18  2011 libzbar.so.0 -> libzbar.so.0.2.0
-rw-r--r-- 1 root root 187480 Nov 18  2011 libzbar.so.0.2.0
lrwxrwxrwx 1 root root     25 Nov 12 18:54 libzeitgeist-1.0.so.1 -> libzeitgeist-1.0.so.1.1.4
-rw-r--r-- 1 root root 122048 May  4  2012 libzeitgeist-1.0.so.1.1.4
lrwxrwxrwx 1 root root     18 Nov 12 18:54 libzephyr.so.4 -> libzephyr.so.4.0.0
-rw-r--r-- 1 root root  55672 Apr 30  2011 libzephyr.so.4.0.0
lrwxrwxrwx 1 root root     23 Nov 26  2010 libzvbi-chains.so.0 -> libzvbi-chains.so.0.0.0
-rw-r--r-- 1 root root  60112 Nov 26  2010 libzvbi-chains.so.0.0.0
lrwxrwxrwx 1 root root     17 Nov 26  2010 libzvbi.so.0 -> libzvbi.so.0.13.1
-rw-r--r-- 1 root root 546768 Nov 26  2010 libzvbi.so.0.13.1

我不知道其中哪一个代表-lz

有人能帮我解决这个问题吗?我很感激你的时间和帮助。

答案1

那可能是您遗漏了或者未能发现的 libz.so。

$ locate libz
/lib/i386-linux-gnu/libz.so.1
/lib/i386-linux-gnu/libz.so.1.2.3.4
/lib/x86_64-linux-gnu/libz.so.1
/lib/x86_64-linux-gnu/libz.so.1.2.3.4

如果存在,请修复 makefile 中的库搜索路径。如果缺失,请从以下位置安装它(可能是 devl 包):

$ apt-file search libz.so
lib32z1: /usr/lib32/libz.so.1
lib32z1: /usr/lib32/libz.so.1.2.3.4
lib32z1-dev: /usr/lib32/libz.so
lsb-build-base3: /usr/lib/lsb3/libz.so
zlib1g: /lib/x86_64-linux-gnu/libz.so.1
zlib1g: /lib/x86_64-linux-gnu/libz.so.1.2.3.4
zlib1g-dbg: /usr/lib/debug/lib/libz.so.1.2.3.4
zlib1g-dbg: /usr/lib/debug/lib/x86_64-linux-gnu/libz.so.1.2.3.4
zlib1g-dbg: /usr/lib/debug/usr/lib32/libz.so.1.2.3.4
zlib1g-dev: /usr/lib/x86_64-linux-gnu/libz.so

相关内容