[g++]Compréhension globale LD_LIBRARY_PATH
Bonjour à tous!
De ce que j'ai pu lire partout sur le net, le LD_LIBRARY_PATH permet d'indiquer lors de la compil+linking avec g++ (entre autre) où chercher certaines bibliothèques nécessaires à notre linking...
Mon problème vient du fait que j'ai pu également lire que c'était MAL d'utiliser cette variable et qu'il valait mieux utiliser des options du style -L /path -lmaLib.
Et effectivement cela fonctionne bien pour certaines de mes bibliothèques et pas pour d'autres...
Dans mon projet ma ligne de linking ressemble à ça:
Code:
/usr/bin/g++ -L/usr/lib -L/usr/local/python2.6/lib -lpython2.6 /monPath/malib.so -o main main.o
Cette ligne ne me génère pas d'erreur à son exécution.
Par contre, lorsque j'essaye d'exécuter le main généré... j'ai une erreur m'indiquant que la bibliothèque partagée python n'a pu être chargée:
Code:
error while loading shared libraries: libpython2.6.so.1.0: cannot open shared object file: No such file or directory
Il suffit que je rajoute le path vers la lib python dans mon LD_LIBRARY_PATH pour que cela fonctionne... mais je n'arrive pas à comprendre pourquoi, étant donné que je lui indique explicitement ou aller chercher cette bibliothèque. Le mécanisme semblant fonctionner pour l'autre bibliothèque (malib.so) que j'utilise...
Bref, il me manque une brique dans le mur de ma compréhension de tout ça... si quelqu'un l'a à sa disposition, je veux bien qu'il m'éclaire ;)
Merci à tous!