Définir LD_LIBRARY_PATH pour les applications démarrées à partir du bureau

8

J'ai Qt Creator installé sur Ubuntu 10.04 LTS. Lorsque je lance Qt Creator depuis le bureau, je peux créer l'application sur laquelle je travaille, mais je ne peux pas l'exécuter ou la déboguer. Après quelques difficultés, j'ai constaté que LD_LIBRARY_PATH n'était pas défini pour les applications exécutées à partir du bureau. Si je lance Qt Creator à partir de bash (où LD_LIBRARY_PATH est défini dans .bashrc), tout s'exécute et se débogue parfaitement.

Comment définir LD_LIBRARY_PATH pour qu’il soit défini pour toutes les applications en cours d’exécution?

    
posée dwj 28.10.2010 - 03:03
la source

4 réponses

6

Cela semble être un bug dans l'application elle-même. Il devrait avoir un script wrapper qui définit correctement toutes les variables LD_LIBRARY_PATH nécessaires. Soyez prudent lorsque vous écrivez un tel script, car vous ne voulez pas avoir de partie vide de la chaîne LD_LIBRARY_PATH entre les deux points utilisés comme séparateurs de chemin. Par exemple, cela pourrait entraîner un mauvais chemin si la variable était initialement vide (entraînant une chaîne vide avant les deux points):

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/some/path/for/app"

Ainsi, lors de l'ajout d'un chemin, vous voudrez d'abord tester la chaîne vide. Par exemple, en utilisant le code shell:

LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}/some/path/for/app
    
réponse donnée Kees Cook 28.10.2010 - 05:23
la source
2

Créez un nouveau fichier /etc/ld.so.conf contenant:

# Begin /etc/ld.so.conf
/lib
/usr/lib
/usr/X11R6/lib
# whatever else #

Mettez à jour le cache du chargeur dynamique en exécutant:

ldconfig
    
réponse donnée Extender 28.10.2010 - 04:37
la source
0

placez-le dans /etc/bash.bashrc près du haut pour modifier le système au démarrage.

    
réponse donnée Roop 23.08.2013 - 01:42
la source
0

En plus de .bashrc , définissez également la variable d'environnement dans .profile . Ce fichier sera traité et chargé par votre session, il devrait donc affecter tout ce qui fonctionne en tant qu'utilisateur. En outre: Ce fichier indique qu'il n'est pas lu par Bash si .bashrc existe, mais il semble s'appliquer encore (peut-être puisque Bash hérite de la session X depuis laquelle il a été démarré). Cela ne fait pas de mal d'avoir la variable dans les deux fichiers, cependant.

    
réponse donnée Jacob Peddicord 28.10.2010 - 04:24
la source

Lire d'autres questions sur les étiquettes