我试图使用作为.so文件提供一个预编译库中。

此文件被动态链接针对几个librairies:

$ ldd  /usr/local/test/lib/libtest.so
linux-gate.so.1 =>  (0xb770d000)
libstdc++-libc6.1-1.so.2 => not found
libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb75e1000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7499000)
/lib/ld-linux.so.2 (0xb770e000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb747c000)

不幸的是,在的Debian /挤压,没有的libstdc ++ - 。libc6.1-1.so *文件。 只有一个的libstdc ++。所以*通过的libstdc ++ 6包提供的文件。

我试图链路(使用LN -s)的libstdc ++ - libc6.1-1.so.2到的libstdc ++ so.6文件。它不工作,一批符号似乎缺乏当我试图LD这种LIB我的.o文件。

/usr/local/test/lib/libtest.so: undefined reference to `__builtin_vec_delete'
/usr/local/test/lib/libtest.so: undefined reference to `istrstream::istrstream(int, char const *, int)'
/usr/local/test/lib/libtest.so: undefined reference to `__rtti_user'
/usr/local/test/lib/libtest.so: undefined reference to `__builtin_new'
/usr/local/test/lib/libtest.so: undefined reference to `istream::ignore(int, int)'

你会怎么做?我怎么可以在其中找到LIB那些符号远销?

有帮助吗?

解决方案

谷歌表示,你需要的libstdc ++ 2.9-glibc2.1

http://linux.derkeiler.com/Mailing - 列出/ Debian的/ 2005-07 / 0755.html

虽然这是从过时的debian发行,我不知道,如果是要安装一个好主意。

修改结果

其实我尝试过了的好奇心。它没有做任何伤害,而且似乎与标准libstc ++来很好地共存。所以

debian:/home/dmitry# ll /usr/lib/\*stdc\*
-rw-r--r-- 1 root root 256240 2000-02-19 17:41 /usr/lib/libstdc++-2-libc6.1-1-2.9.0.so
lrwxrwxrwx 1 root root     30 2010-03-31 15:54 /usr/lib/libstdc++-libc6.1-1.so.2 -> libstdc++-2-libc6.1-1-2.9.0.so
lrwxrwxrwx 1 root root     19 2010-01-21 10:13 /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.13
-rw-r--r-- 1 root root 958628 2010-01-08 11:39 /usr/lib/libstdc++.so.6.0.13

,点击 wget http://archive.debian.org/debian/pool/main/e/egcs1.1/libstdc++2.9-glibc2.1_2.91.66-4_i386.deb

dpkg -i libstdc++2.9-glibc2.1_2.91.66-4_i386.deb

其他提示

试一下沿着线:

`find /lib -type f | xargs nm | less`

然后,对于istrstream寻线。这可能是相当缓慢的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top