Forum de la communauté SFML
Aide => Général => Discussion démarrée 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 ! ^^
-
Tu es sûr que l'erreur survient au moment de l'édition de liens, et pas quand tu exécutes ton programme ?
-
Euh oui pardon, au moment du lancement du programme, petit problème de vocabulaire :O
-
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.
-
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 !