Bonjour,
mon "problème" n'est pas en rapport direct avec SFML mais j'espère que vous pourrez m'aider quand même !
Voici mon makefile, je signale au passage que tout ce qui concerne SFML est dans le répertoire $HOME/.SFML-2.0
PROGRAM=app
SOURCES=$(wildcard *.cpp)
OBJECTS=$(patsubst %.cpp,%.o,$(SOURCES))
LIBREP=$(HOME)/.SFML-2.0
CC=g++
CPPFLAGS=
CFLAGS=-Wall
IFLAGS= -I$(LIBREP)/include
LDFLAGS=-L$(LIBREP)/lib -lsfml-graphics -lsfml-window -lsfml-system
all: show $(PROGRAM)
show:
@echo "librep : "$(LIBREP);
@echo "include : "$(IFLAGS);
@echo "ld : "$(LDFLAGS);
@echo "sources : "$(SOURCES);
@echo "objects : "$(OBJECTS);
$(PROGRAM):$(OBJECTS)
$(CC) $(CFLAGS) $(OBJECTS) -o $@ $(LDFLAGS)
%.o:%.d
$(CC) $(CFLAGS) -c $< $(IFLAGS) $(LDFLAGS)
%.d:%.cpp
$(CC) $(CFLAGS) -MM $< $(IFLAGS)
clean:
rm -f $(PROGRAM) $(OBJECTS) *.d *~
et l'output donne :
g++ -c -o app.o app.cpp
In file included from app.hpp:4:0,
from app.cpp:1:
Resources.hpp:7:29: erreur fatale: SFML/Graphics.hpp : Aucun fichier ou dossier de ce type
compilation terminée.
make: *** [app.o] Erreur 1
Je songe donc à un problème de linkage. En remplaçant "%.o:%.d" par "%.o:%.cpp", tout fonctionne (les répertoires étant bien spécifiés), mais du coup je perds tous les bénéfices du makefile, à savoir la bonne gestion des dépendances. Je dois tout recompiler à chaque fois ce qui n'est pas top.
Le soucis se situe selon moi soit au calcul du .d, soit au passage du .d au .o (la suppression ou l'ajout des IFLAGS ou LDFLAGS ne change rien).
J'avoue ne pas être très familier avec l'option -MM, aussi si quelqu'un pourrait m'éclairer je lui serais reconnaissant.