2016-08-22 1 views
0

J'ai essayé de faire fonctionner SFML sur Fedora 24 depuis quelques jours et je peux Il semble que cela fonctionne. Le programme compile et se lie bien, mais lorsque je tente d'exécuter le programme compilé je reçois cette erreur:Construction de SFML sur Fedora 24 erreur de liaison: erreur lors du chargement des bibliothèques partagées: libsfml-graphics.so.2.4: impossible d'ouvrir le fichier objet partagé

./sfml-app: error while loading shared libraries: libsfml-graphics.so.2.4: cannot open shared object file: No such file or directory 

Je sais que les fichiers sont là car ils sont tous situés dans le répertoire/usr/lib:

ls /usr/lib | grep sfml 
libsfml-audio-d.so 
libsfml-audio-d.so.2.4 
libsfml-audio-d.so.2.4.0 
libsfml-graphics-d.so 
libsfml-graphics-d.so.2.4 
libsfml-graphics-d.so.2.4.0 
libsfml-network-d.so 
libsfml-network-d.so.2.4 
libsfml-network-d.so.2.4.0 
libsfml-system-d.so 
libsfml-system-d.so.2.4 
libsfml-system-d.so.2.4.0 
libsfml-window-d.so 
libsfml-window-d.so.2.4 
libsfml-window-d.so.2.4.0 

Je pense que le problème est qu'il est à la recherche de libsfml-graphics.so.2.4 mais le fichier est en fait nommé libsfml-graphiques -d .so.2.4. Le -d est dans le nom du fichier réel pour une raison quelconque. J'ai essayé de faire un lien vers le fichier sans le -d mais cela ne fonctionnait toujours pas.

J'ai construit moi-même SFML avec CMake et make puis l'ai installé en utilisant make install.

Lorsque j'exécute ldconfig -p | grep sfml Je reçois ceci:

libsfml-window-d.so.2.4 (libc6,x86-64) => /lib/libsfml-window-d.so.2.4 
libsfml-window-d.so (libc6,x86-64) => /lib/libsfml-window-d.so 
libsfml-system-d.so.2.4 (libc6,x86-64) => /lib/libsfml-system-d.so.2.4 
libsfml-system-d.so (libc6,x86-64) => /lib/libsfml-system-d.so 
libsfml-network-d.so.2.4 (libc6,x86-64) => /lib/libsfml-network-d.so.2.4 
libsfml-network-d.so (libc6,x86-64) => /lib/libsfml-network-d.so 
libsfml-graphics-d.so.2.4 (libc6,x86-64) => /lib/libsfml-graphics-d.so.2.4 
libsfml-graphics-d.so (libc6,x86-64) => /lib/libsfml-graphics-d.so 
libsfml-audio-d.so.2.4 (libc6,x86-64) => /lib/libsfml-audio-d.so.2.4 
libsfml-audio-d.so (libc6,x86-64) => /lib/libsfml-audio-d.so 

Toute aide pour commencer à travailler sera très appréciée. :)

Editer:
Je l'ai eu de travail en téléchargeant le paquet fedora SFML officiel. Je suppose que la première fois que je l'ai installé j'ai oublié d'installer également le paquet SFML-devel.

+0

Y at-il une raison pour laquelle vous ne pouvez pas utiliser la version officielle fournie avec la distribution? – Galik

+0

J'utilisais celui-là à l'origine mais il me donnait cette erreur: ./sfml-app: erreur de recherche de symbole: /lib/libsfml-graphics.so.2.4: symbole non défini: __cpu_model qui est ce qui se passe maintenant que j'ai essayé jesper's solution ci-dessous – JRud52

+0

Avez-vous vérifié votre dossier/usr/lib64? Est-ce une installation 64 bits? – Galik

Répondre

1

Les fichiers '-d' sont les versions de débogage de la bibliothèque (si je me souviens bien de la convention de nommage de SFML). Vous semblez manquer la version non-debug.

+1

Cela semble avoir fonctionné. Merci! Mais maintenant j'ai un nouveau problème. Il me donne une erreur en disant: ./sfml-app: erreur de recherche de symbole: /lib/libsfml-graphics.so.2.4: symbole non défini: __cpu_model – JRud52

+1

@ JRud52 Voir ici: http://en.sfml-dev.org/ forums/index.php? topic = 20638.0 –

+0

@JesperJuhl Merci, ce correctif a fonctionné pour moi sur Fedora 25 avec gcc 6.3.1. – Bob