Question

Je suis en train d'utiliser une bibliothèque pré-compilé fourni sous forme de fichier .so.

Ce fichier est lié dynamiquement contre quelques bibliothèques:

$ 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)

Malheureusement, dans Debian / squeeze, il n'y a pas libstdc ++ - fichier libc6.1-1.so *.. Seul un libstdc ++. Donc. * Fichier fourni par le package libstdc ++ 6.

J'ai essayé de créer un lien (en utilisant ln -s) libstdc ++ - libc6.1-1.so.2 au libstdc ++ fichier so.6.. Il ne fonctionne pas, un lot de symboles semble manquer quand je suis en train de ld mes fichiers .o cette 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)'

Que feriez-vous? Comment puis-je trouver où lib ces symboles sont exportés?

Était-ce utile?

La solution

Google dit que vous avez besoin libstdc ++ 2.9-glibc2.1

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

Bien qu'il soit de version debian obsolète et je ne suis pas sûr que ce soit une bonne idée de l'installer.

Modifier

En fait, je l'ai essayé par curiosité. Il ne fait pas de mal et semblent coexister bien avec libstc norme ++. So

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

Autres conseils

Essayez quelque chose le long des lignes de:

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

Ensuite, pour chasser istrstream. Cela pourrait être assez lent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top