2017-06-04 3 views
0

J'ai donc créé un programme sous Linux (OpenSUSE) en utilisant C++ et SFML.Erreur lors du chargement de la bibliothèque partagée SMFL

J'ai essayé d'envoyer le programme compilé à un de mes amis (également sur Linux) mais il m'a dit qu'il manquait les DLL. J'inclus tous les « .so » que je (audio, graphiques, fenêtres et système), mais quand il essaie de l'exécuter, il continue à donner une erreur:

error while loading shared libraries: libsfml-audio.so.2.4: cannot open shared object file: No such file or directory 

donc je suis allé vérifier, et J'ai définitivement inclus le fichier "libsfml-audio.so.2.4". Je ne veux vraiment pas le faire installer SFML juste pour pouvoir l'exécuter.

Merci d'avance pour toute aide.

+2

Pas besoin de modifier le titre, cela est déjà traité en acceptant une réponse :) – Quentin

Répondre

2

Linux est un peu plus nitpicky quand il s'agit de charger des bibliothèques partagées.

La solution la plus simple consiste à regrouper vos bibliothèques partagées et à dire au programme de les charger réellement à partir de là.

Supposons que les bibliothèques partagées sont à côté de l'exécutable, vous lancerions comme ceci:

LD_LIBRARY_PATH=. ./yourExecutableName 
+0

Merci homme, ça a marché. –

+0

Pourquoi le SONAME *** *** n'a-t-il pas fonctionné? Peut-être lié, [bibliothèque manquante C++ linker lors de l'exécution (comportement SONAME)] (https://stackoverflow.com/q/10199045/608639) – jww

+0

@jww Aucune idée. Mais oui, c'est probablement quelque chose comme dans la question liée. – Mario