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