Bonjour à tous,

J'ai créé une bibliothèque dynamique "libconvert.so.1.0" avec un soname "libconvert.so.1". J'utilise Linux Ubuntu 11.1.

Lorsque je veux compiler un exécutable en passant à gcc cette bibliothèque avec son nom complet (sans l'option -l) ou son soname (sans l'option -l), celui ne ne la trouve pas. J'indique pourtant la bonne route complète à gcc grâce à l'option -L

Pour que mon programme compile je dois indiquer la route complète à gcc ou créer un lien manuel libconvert.so.1.0 -> libconvert.so grâce à ln et utiliser l'option -l de gcc.

En bref: (Compilation de l’exécutable, les .o sont créés)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
$(CC) $(CFLAGS) $^ -L$(DSHLIB) libconvert.so.1.0 -o $@
Ne compile pas...
"libconvert.1.0 No such file or directory"



Code : Sélectionner tout - Visualiser dans une fenêtre à part
$(CC) $(CFLAGS) $^ -L$(DSHLIB) libconvert.so.1 -o $@
Après exécution de ldconfig pour creer le lien soname.
Ne compile pas...
"libconvert.1 No such file or directory"



Code : Sélectionner tout - Visualiser dans une fenêtre à part
$(CC) $(CFLAGS) $^ -L$(DSHLIB) $(DHLIB)/libconvert.so.1 -o $@
Apres execution de ldconfig pour creer le lien soname.
Compile!



Code : Sélectionner tout - Visualiser dans une fenêtre à part
$(CC) $(CFLAGS) $^ -L$(DSHLIB) lconvert.so -o $@
Après exécution de "ln -sf $(DSHLIB)/libconvert.so.1.0 $(DSHLIB)/libconvert.so" .
Compile!

Je ne comprends pas vraiment pourquoi dans les 2 premiers cas gcc ne trouve pas la bibliothèque. J'aimerais bien comprendre, cela va à l'encontre des tutoriels que j'ai lu.
Pour information la route que je passe à l'option -L de gcc est la bonne j'ai vérifié plusieurs fois.

Si vous avez une idée ou si vous avez déjà rencontré ce problème, votre aide est la bienvenue.

Merci!