在我的 Ubuntu 11.10 上,我正在为主机以外的不同目标运行 gdb 版本,并且收到以下错误:
xxxxx-none-linux-gnu-gdb: error while loading shared libraries: /usr/lib/libtermcap.so.2: file too short
以下是我的主机上的 libncurses 和 libtermcap 列表:
$ ls -l /usr/lib/libtermcap.*
lrwxrwxrwx 1 root root 12 2011-09-17 00:59 /usr/lib/libtermcap.a -> libncurses.a
lrwxrwxrwx 1 root root 13 2011-09-17 00:59 /usr/lib/libtermcap.so -> libncurses.so
lrwxrwxrwx 1 root root 22 2011-12-05 17:32 /usr/lib/libtermcap.so.2 -> /usr/lib/libncurses.so
$ ls -l /usr/lib/libncurses*
-rw-r--r-- 1 root root 221876 2011-09-17 00:59 /usr/lib/libncurses.a
-rw-r--r-- 1 root root 113216 2011-09-17 00:59 /usr/lib/libncurses++.a
-rw-r--r-- 1 root root 31 2011-09-17 00:59 /usr/lib/libncurses.so
$ cat /usr/lib/libncurses.so
INPUT(libncurses.so.5 -ltinfo)
$ uname -a
Linux hostname 3.0.0-13-generic-pae #22-Ubuntu SMP Wed Nov 2 15:17:35 UTC 2011 i686 i686 i386 GNU/Linux
如何解决这个问题?
答案1
libncruses 库实际上位于 /lib/libncurses.so.5。
只需将 /lib/libncurses.so.5(或正确版本,在我的系统中为 /lib/libncurses.so.5.9)的符号链接到 /usr/lib/libtermcap.so.2,它就可以工作。