Erreur à l'exécution d'un programme utilisant boost

[color=#0000FF]Bonjour,

Je suis sous Debian et développe en C++ avec l’IDE Eclipse.
Ayant découvert boost, je souhaite l’utiliser en particulier pour la librairie filesystem qui me sera d’une grande utilité.
J’ai d’abord installé les paquets debian de boost qui apparemment ne contiennent pas les build de la bibliothèque filesystem. J’ai donc décidé de supprimer les paquet et de télécharger et compiler la dernière version de boost disponible sur sourceforge.

J’ai suivi la procédure du site de boost et tout s’est compilé (semble-t’il correctement) dans mon dossier utilisateur, ce qui foncièrement ne me pose pas de problème particulier.
Ensuite j’ai configuré eclipse pour lui donner le chemin “/home/fred/boost_1_39_0/stage/lib” des librairies de boost dont j’ai besoin (fichiers .a et .so) et je lui ai donné le nom des librairies exactes qu’il fallait appeller lors de la compilation donc libboost_filesystem-gcc43-mt-1_39, ainsi que le dossier contenant les headers “/home/fred/boost_1_39_0”.

Eclipse a tout accepté, la complétion des fonction de boost fonctionne et le programme compile. Le problème survient lorsque j’exécute le programme, eclipse m’affiche le message d’erreur suivant en console :
"/home/fred/workspace/AMFM/Debug/AMFM: error while loading shared libraries: libboost_filesystem-gcc43-mt-1_39.so.1.39.0: cannot open shared object file: No such file or directory"

Ce fichier se trouve bien dans “/home/fred/boost_1_39_0/stage/lib” j’ai vérifié. Je me doute que j’ai du mal faire ou ne pas faire quelque chose, mais je ne sais pas quoi. Je n’ai pas trouvé d’explications claires pour régler le problème avec Google. :confused:

En espérant que vous pourrez m’aider.
merci d’avance.[/color]

Après une lecture concernant les variables d’environnement sur wikipedia, j’ai déplacé le dossier boost dans /usr/local/lib, il n’est plus dans mon répertoire utilisateur.
Sur les conseils d’un utilisateur d’un autre forum, j’ai bêtement copié les fichiers .so directement dans le dossier /usr/local/lib sans chercher à les ranger dans un dossier boost, parce que j’ai remarqué que dans /usr/lib les fichiers .so présents étaient pêle-mêle sans rangement particulier, et… ça s’est exécuté correctement !

J’ai essayer d’effacer les fichiers .so du dossier /usr/local/lib et j’ai indiqué à la variable d’environnement contenant les chemins des librairies, le dossier exact de boost où étaient stockés ces fichiers à l’origine, une solution qui m’avait été proposée sur un autre forum mais qui n’avait pas fonctionné lorsque boost était installé dans mon répertoire utilisateur :

export LD_LIBRARY_PATH=/usr/local/lib/boost/stage/lib

Et là, le programme s’est exécuté correctement, alors que la même commande lorsque boost était dans mon dossier utilisateur n’avait eue aucun effet Encore un mystère…

Mais le principal c’est que tout fonctionne maintenant, et puis grâce à ça je comprends beaucoup mieux comment ces histoires de links fonctionnent

Merci à tous