si vos bibliothèques ne sont pas sur le chemin standard, vous devez soit les ajouter au chemin, soit ajouter un chemin non standard à LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<Your_non-Standard_path>
Une fois que vous avez fait l'une des choses ci-dessus, vous devez mettre à jour la liaison d'exécution de l'éditeur de liens dynamique en exécutant la commande ci-dessous :
sudo ldconfig
MISE À JOUR :
Vous pouvez rendre les modifications permanentes en écrivant le export
ci-dessus ligne dans l'un de vos fichiers de démarrage (par exemple ~/.bashrc) OU si la bibliothèque sous-jacente n'est pas en conflit avec une autre bibliothèque, placez-la dans l'un des chemins de bibliothèque standard (par exemple, /lib,/usr/lib)
LD_LIBRARY_PATH
convient aux tests courts, mais comme il n'y a qu'une seule variable , il est difficile à utiliser lorsque vous avez plusieurs applications avec des bibliothèques personnalisées.
La manière habituelle pour Debian/Ubuntu est de l'ajouter à la configuration du chargeur, par exemple, un fichier sous
/etc/ld.so.conf.d
contenant le répertoire dans lequel vous voulez que le chargeur recherche, par exemple,
/usr/local/libcsfml
Lectures complémentaires :
- ldconfig - configure les liaisons d'exécution de l'éditeur de liens dynamique
- ld.so, ld-linux.so* - éditeur de liens/chargeur dynamique
- Pourquoi LD_LIBRARY_PATH est mauvais
C'est comme si le binaire en question avait été compilé par vous.
Vous êtes donc responsable du problème que certaines bibliothèques sont introuvables.
Si ces bibliothèques sont disponibles sur votre système, elles semblent se trouver dans des emplacements de répertoires non standard.
Utilisez -R directory
pour l'appel final du compilateur pour dire à l'éditeur de liens le directory
où se trouvent les bibliothèques. Plus d'un seul -R directory
est possible.
Notez que lorsque vous utilisez gcc
, vous devrez peut-être utiliser -Wl,-R
au lieu de -R
.