Pregunta

Estoy tratando de utilizar una biblioteca de pre-compilados proporcionado como un archivo .so.

Este archivo está vinculado dinámicamente contra unos 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)

Por desgracia, en Debian / apretón, no hay libstdc ++ -. Libc6.1-1.so archivo *. Sólo un libstdc ++. So. * Archivo proporcionado por el paquete libstdc ++ 6.

Me trató de enlace (utilizando ln -s) libstdc ++ - libc6.1-1.so.2 a la libstdc ++ archivo so.6.. No funciona, un lote de símbolos parece estar ausente cuando estoy tratando de ld mis .o archivos con esta lib.

/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)'

¿Qué haría usted? ¿En qué puedo encontrar en la cual lib esos símbolos se exportan?

¿Fue útil?

Solución

Google dice que es necesario tener libstdc ++ 2,9-glibc2.1

http://linux.derkeiler.com/Mailing -Listas / Debian / 2005-07 / 0755.html

A pesar de que es de liberación de Debian obsoleta y no estoy seguro si es por ejemplo una idea buena para instalarlo.

Editar

En realidad lo probé por curiosidad. No hizo ningún daño y parecen coexistir bien con libstc ++ estándar. Modo

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

Otros consejos

Trate algo en la línea de:

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

Luego de caza istrstream. Esto podría ser bastante lento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top