définition de LD_LIBRARY_PATH pour CUDA

12

L'installation de la boîte à outils CUDA entraîne l'impression des instructions suivantes sur la console.

Veuillez vous assurer que votre LD_LIBRARY_PATH pour les distributions Linux 64 bits inclut /usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib

OU

pour les distributions Linux 64 bits, ajoutez /usr/local/cuda-5.0/lib64 et /usr/local/cuda-5.0/lib à /etc/ld.so.conf et exécutez ldconfig en tant que root

Le code suivant /etc/profilen'a eu aucun effet.

if [ -z "$LD_LIBRARY_PATH" ]; then    
  LD_LIBRARY_PATH=/usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib
else
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib
fi
export LD_LIBRARY_PATH

Autrement dit, le redémarrage et l'émission echo $LD_LIBRARY_PATHont montré que la variable n'était pas définie.

Pour essayer la suggestion alternative, j'ai ajouté les deux lignes au fichier /etc/ld.so.confafin que mon fichier ressemble à ceci

include /etc/ld.so.conf.d/*.conf 
/usr/local/cuda-5.0/lib64
/usr/local/cuda-5.0/lib

Ensuite, j'ai émis:

sudo ldconfig

ensuite

echo $LD_LIBRARY_PATH

La variable d'environnement n'a toujours pas été définie. Comment puis-je me conformer aux instructions d'installation de CUDA indiquées ci-dessus?

H2ONaCl
la source
1
ldconfig ne définit pas LD_LIBRARY_PATH, il inclut les bibliothèques d'une manière différente.
w4etwetewtwet

Réponses:

17

Ajoutez un fichier avec l' .confextension /etc/ld.so.conf.d/ contenant les chemins d'accès aux bibliothèques, puis exécutez ldconfig. Veillez à définir les autorisations et la propriété du fichier pour correspondre aux autres fichiers du répertoire.

Il s'agit d'une solution à l'échelle du système par opposition à la solution spécifique à l'utilisateur de modification de .bashrc.

J'ai fait sur mon système nvidia.confen /etc/ld.so.conf.d/. Le fichier contient les lignes:

/usr/local/cuda-5.0/lib64
/usr/local/cuda-5.0/lib

Si vous créez le fichier sudoalors, vos autorisations devraient être bonnes, mais mon nvidia.confest propriétaire / racine du groupe et rw-r - r-- (ou 644).

Logan Mayfield
la source
1
Cela ne semble pas fonctionner. ldconfig ne définit pas $ LD_LIBRARY_PATH.
Nick
1
Je crois comprendre que cela résout le problème de telle manière que vous n'avez pas besoin de définir la variable de chemin. Donc, si "ne fonctionne pas" signifie que la variable n'est pas définie, alors bien sûr. Si "ne fonctionne pas" signifie que CUDA ne fonctionne pas, alors plus d'informations sur votre problème sont nécessaires car cela a activé (et continue d'activer) le développement de CUDA sur ma configuration.
Logan Mayfield
Je suis sûr que cela fonctionne pour certaines choses, le programme que j'essayais de compiler veut utiliser $ LD_LIBRARY_PATH, ce qui n'est probablement pas la meilleure pratique, cela signifie que je dois le configurer!
Nick
10

Mettez ce qui suit .bashrc.

if [ -z $LD_LIBRARY_PATH ]; then
  LD_LIBRARY_PATH=/usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib
else
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib
fi
export LD_LIBRARY_PATH
H2ONaCl
la source
Je pense que la méthode préférée est de créer un fichier .conf. Je l'ai décrit dans ma réponse ci-dessous.
Logan Mayfield