J'ai un code qui utilise des bibliothèques partagées (code c sur gcc). Lors de la compilation, je dois définir explicitement les répertoires include et library en utilisant -I et -L, car ils ne sont pas dans les emplacements standards. Lorsque j'essaie d'exécuter le code, j'obtiens l'erreur suivante :
./sync_test
./sync_test: error while loading shared libraries: libsync.so: cannot open shared object file: No such file or directory
Cependant, si vous faites ce qui suit, tout fonctionne parfaitement :
export LD_LIBRARY_PATH="/path/to/library/"
./sync_test
Maintenant, la partie étrange est que cela ne fonctionne qu'une fois. Si j'essaie d'exécuter sync_test à nouveau, j'obtiens la même erreur, à moins que je n'exécute d'abord la commande d'exportation. J'ai essayé d'ajouter ce qui suit à mon .bashrc, mais cela n'a fait aucune différence :
LD_LIBRARY_PATH="/path/to/library/"