Forum de la communauté SFML

Aide => Général => Discussion démarrée par: Zatae42 le Juin 03, 2013, 11:45:13 am

Titre: Linkage - libsfml-graphics.so.2: cannot open shared object file
Posté par: Zatae42 le Juin 03, 2013, 11:45:13 am
Bonjour !

J'ai un petit problème de compilation, voila le code du Makefile :

CC              =       g++

SRC             =       main.cpp \

OBJ             =       $(SRC:.cpp=.o)

LIB             =       -L./SFML-2.0/lib/ -lsfml-graphics -lsfml-window -lsfml-system

CXXFLAGS        =       -I./SFML-2.0/include/

all             =       $(NAME)

$(NAME)         :       $(OBJ)
                        $(CC) -o $(NAME) $(OBJ) $(LIB) $(CXXFLAGS)

clean           :
                        rm -rf $(OBJ) *~

fclean          :       clean
                        rm -rf $(NAME)

re              :       fclean all

Je ne copie pas le code du programme, c'est celui qui est donné en exemple dans le tutorial.

Donc apparement, au linkage il ne trouve pas la lib ... Pourtant il y a bien le dossier SFML-2.0/ là où il y a le Makefile.
Je suis aller jeter un oeil sur le forum avant de venir pleurer ici pour avoir une réponse mais le seul truc intéressant que j'ai trouvé redirigait vers un lien mort :[

Une idée ? Merci d'avance ! ^^
Titre: Re : Linkage - libsfml-graphics.so.2: cannot open shared object file
Posté par: Laurent le Juin 03, 2013, 11:54:54 am
Tu es sûr que l'erreur survient au moment de l'édition de liens, et pas quand tu exécutes ton programme ?
Titre: Re : Linkage - libsfml-graphics.so.2: cannot open shared object file
Posté par: Zatae42 le Juin 03, 2013, 11:57:43 am
Euh oui pardon, au moment du lancement du programme, petit problème de vocabulaire :O
Titre: Re : Linkage - libsfml-graphics.so.2: cannot open shared object file
Posté par: Laurent le Juin 03, 2013, 12:19:17 pm
Dans ce cas ça n'a rien à voir avec tes options de compilation ou d'édition de liens, donc rien à voir avec ton makefile. C'est le chargeur de bibliothèques (ld) qui ne connaît pas le chemin dans lequel se trouvent les bibliothèques. Il faut donc ajouter ces chemins à la config de ld. Je te laisse Googler, je ne sais pas précisément comment faire.
Titre: Re : Linkage - libsfml-graphics.so.2: cannot open shared object file
Posté par: Zatae42 le Juin 03, 2013, 02:20:08 pm
Effectivement, c'était bien mon problème !

Pour ceux qui auraient la meme erreur que moi, je vous donne la ligne de commande pour que ld sache ou se trouve la lib :

$ sudo ldconfig /your/path/to/the/library/folder/SFML-2.0/lib/
Ensuite, vous faite un

$ sudo ldconfig -p | grep sfml
Et vous devriez voir apparaitre quelque chose comme :

$ sudo ldconfig -p | grep sfml
libsfml-window.so.2 (libc6) => /your/path/to/the/library/folder/SFML-2.0/lib/libsfml-window.so.2
libsfml-system.so.2 (libc6) => /your/path/to/the/library/folder/SFML-2.0/lib/libsfml-system.so.2
...
...

Si vous avez bien ce retour, c'est que les libs sont bien prises en charge par ld.

Encore merci du coup de main !