LD_LIBRARY_PATH ne fonctionne pas

Un de mes binarys nécessite libfoo.so (qui réside dans /dir/libfoo ) et je n’arrive pas à comprendre comment le lier en définissant une variable d’environnement. J’ai essayé les deux solutions suivantes:

export LD_FLAG='-L/dir/libfoo/' export LD_LIBRARY_PATH='-L/dir/libfoo/'

mais quand je lance ldd ./mybin je vois libfoo.so.0 => not found parmi les autres bibliothèques trouvées.

Je peux, cependant, lier avec succès lorsque j’utilise ceci: /lib/ld-linux.so.2 --library-path /dir/libfoo ./mybin

J’exécute le serveur Ubuntu 13.10 x86

Que fais-je mal ici?

-L est un indicateur gcc et gcc n’est pas impliqué dans ce processus. Juste faire

 export LD_LIBRARY_PATH='/dir/libfoo/' 

Vous avez transmis l’option -L à LD_LIBRARY_PATH, ce qui est faux à la place, supprimez -L de LD_LIBRARY_PATH

 export LD_LIBRARY_PATH=/dir/libfoo/ 

Voir également http://man7.org/linux/man-pages/man8/ld.so.8.html pour la spécification de l’éditeur de liens / chargeur