Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Problème makefile et linkage SFML  (Lu 1454 fois)

0 Membres et 1 Invité sur ce sujet

Lasconik

  • Newbie
  • *
  • Messages: 11
    • Voir le profil
    • E-mail
Problème makefile et linkage SFML
« le: Juin 17, 2013, 07:09:18 pm »
Bonjour,
mon "problème" n'est pas en rapport direct avec SFML mais j'espère que vous pourrez m'aider quand même !  ;D

Voici mon makefile, je signale au passage que tout ce qui concerne SFML est dans le répertoire $HOME/.SFML-2.0
Citer
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 :
Citer
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.
« Modifié: Juin 17, 2013, 07:12:38 pm par Lasconik »