bonjour,
je suis sous mandrake 7.0 (g++ version 2.95.2) et je cherche � utiliser les
'attribute' de
fonctions en c++, notamment l'attribut 'constructor' et cela ne marche pas (le code
sens�
�tre lanc� au chargement de la biblioth�que n'est pas ex�cut�), alors que le
m�me programme compil� et ex�cut� sur une autre machine (Mandrake 6.1 ou
Debian) fonctionne parfaitement (la fonction indiqu�e par __attribute__
((constructor)) est bien ex�cut�e au chargement de la biblioth�que dynamique).
exemple:
$ cat test.cpp
int main()
{
exit(0);
}
$ cat bidon.cpp
#include <iostream.h>
void initialisation (void) __attribute__ ((constructor));
void initialisation(void)
{
cout << "initialisation" << endl;
}
$ g++ -Wall -shared -lc -Wl,-soname,libbidon.so -o libbidon.so bidon.cpp
$ g++ -Wall test.cpp -o test -L. -lbidon
R�sultat sur Debian ou Mandrake 6.1:
$ ./test
initialisation
$
R�sultat sur Mandrake 7.0:
$ ./test
./test: error in loading shared libraries: libbidon.so: cannot open shared
object file: No such file or directory
$ export LD_LIBRARY_PATH=.
$ ./test
$
(au passage, le -L. ne sert � rien apparemment)
est-ce que quelqu'un a d�j� eu ce probl�me (et l'a r�solu)?
merci,
st�phane doncieux