加载 libtermcap.so / libncurses.so 时出现“文件太短”错误

加载 libtermcap.so / libncurses.so 时出现“文件太短”错误

在我的 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,它就可以工作。

相关内容