web-dev-qa-db-fra.com

Pourquoi mon programme ne trouve-t-il pas les bibliothèques dans "/ usr / local / lib"?

Je suis sur Ubuntu 10.10 et je viens de mettre à jour OpenCV 2.4.2.

Le problème est que chaque fois que j'ouvre un nouveau shell et que je tente de le compiler et de l'exécuter, ce dernier est compilé mais ne s'exécute pas à cause de l'erreur suivante:

./a.out: error while loading shared libraries: libopencv_calib3d.so.2.4: cannot open shared object file: No such file or directory

Autant que je sache, ce fichier se trouve dans/usr/local/lib /!

Je peux le faire fonctionner en exécutant à l’avance ce qui suit:

export LD_LIBRARY_PATH=/usr/local/lib

Comment puis-je résoudre ce problème?

8
nkint

/usr/local/lib n'est pas dans le chemin par défaut Ubuntu. Vous devez l'ajouter à la fin de la variable d'environnement LD_LIBRARY_PATH dans /etc/environment. Redémarrez et le nouveau chemin sera efficace.

Vous pouvez également définir ceci par utilisateur dans ~/.bashrc

Exemple (/ etc/environment)

LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib

Exemple (~/.bashrc)

export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
4
ish