Réglage de la variable d'environnement LD_LIBRARY_PATH pour le chargement d'une bibliothèque partagée à l'exécution (g++)

Je vais avoir deux problèmes liés à la même question:

  1. Je partage un objet enregistré dans `pwd`/lib et alors que le fichier exécutable qui utilise il compile correctement (en utilisant-l et-L passe), au moment de l'exécution, c'est de me donner du chagrin. Si j'essaie de le lancer LD_LIBRARY_PATH=/my/absolute/path/to/library/directory ./test il fonctionne très bien. Mais si je l'export LD_LIBRARY_PATH=/mon chemin/chemin/absolu/vers/bibliothèque/annuaire et ne ./test il dit qu'il ne peut pas trouver la bibliothèque partagée. Toutefois, si je ne LD_LIBRARY_PATH=$LD_LIBRARY_PATH ./test encore, il fonctionne très bien!! Toutes les idées sur ce que je fais mal?
  2. Deuxième problème est lié à l'exportation de la LD_LIBRARY_PATH env variable. Si j'ouvre un terminal et tapez export LD_LIBRARY_PATH=/path/to/stuff puis tapez echo $LD_LIBRARY_PATH, la variable est correct. Cependant, si j'écris un script contenant la commande exporter, il suffit de marche, il n'a pas de mise à jour de la variable, au lieu de cela j'ai besoin d'exécuter source install.sh afin d'persistent la variable. Quelle est la meilleure solution pour cela?

Merci pour votre temps!

OriginalL'auteur rhobincu | 2013-03-31