Je me réponds (partiellement) à moi-même avec l'aide de Guillaume Allègre.
- Pour explorer le contenu d'une librarie c++ , il existe deux utilitaires fort utiles : nm et c++filt, appartenant tous les deux à binutils (faire 'info
binutils'). nm affiche les symboles contenus dans une librairie, c++filt les rend lisibles (demangle) aussi bien pour des formats c++ que java et autres.
Exemple :
nm /usr/lib/libicuuc.so | c++filt | grep UnicodeString
donne
000a75bc B icu_2_4::UnicodeString type_info node
0004f1a4 T icu_2_4::UnicodeString::toLower(void)
0004f1dc T icu_2_4::UnicodeString::toLower(icu_2_4::Locale const &)
....
Au moins, c'est lisible. (le T signifie "Text" et indique que la fonction est définie dans la librairie, par opposition à "U" qui signifie "undefined" : la
fonction est importée d'ailleurs par la librairie).
- Guillaume m'a indiqué opportunément que les .la ne sont que des fichiers textes, lisibles avec n'importe quel éditeur, et que kdevelop crée simultanément des
"vraies" .so ou .a
Simplement, il les cache dans un sous-répertoire .libs ...
Bon, j'ai toujours mes symboles non résolus, mais je progresse.
Merci
> > Je cree une librairie dynamique qui importe des classes d'une
> autre, pas faite par moi.
> >
> > Elles n'arrivent pas `a s'entendre (la lib existe, elle
> semble biencontenir la classe qu'il me faut).
> >
> > Comment verifier si ce qui est exporte par une librarie
> dynamique est bien ce qui est attendu par une autre ?
>