[C++/Makefile] Options de compilation...

Résolu
z980x Messages postés 897 Date d'inscription   Statut Membre Dernière intervention   -  
z980x Messages postés 897 Date d'inscription   Statut Membre Dernière intervention   -
Bonour à tous,

je suis sur un projet pour lequel je souhaite une interface graphique. Pour compiler mon projet, j'utilise un makefile assez généraliste, mais pour compiler le fichier de l'interface graphique, j'ai besoin d'options supplémentaires. Ma question est donc, comment modifier mon makefile pour qu'il prenne en compte mon fichier graph.cpp en le linkant avec les librairies nécessaires.
Voici mon makefile:
NOM = lapinoux

override CXXFLAGS+

-Wall LDFLAGS

#Liste des objets à lies pour produire l'executable OBJETS = main.o animal.o lapin.o renard.o pile.o carte.o graph.o #Regle generale de production des objets #Regle de production de l'executable #$(REP_EXEC)/$(NOM).$(VERSION): $(OBJETS) $(NOM): $(OBJETS) $(CXX) $(LDFLAGS) $^ -o $@ clean: @$(RM) *.o *~ *.*~


et les options pour une compilation "classique" de mon fichier d'interface graphique:
g++ -o GRAPH graph.cpp `sdl-config --cflags --libs` -lSDL_ttf -lfreetype


Merci d'avance !

2 réponses

mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Tu peux par exemple faire un truc du genre
SDLFLAGS=`sdl-config --cflags --libs` -lSDL_ttf -lfreetype
CXXFLAGS=  $(SDLFLAGS) -W -Wall

$(NOM): $(OBJETS)
	$(CXX) $(LDFLAGS) $(CXXFLAGS) $^ -o $@

Bonne chance
0
z980x Messages postés 897 Date d'inscription   Statut Membre Dernière intervention   16
 
Je te remercie pour cette réponse, c'est bien ce qu'il fallait faire, néanmoins, il faut mettre le $(LDFLAGS) à la fin.

Voici donc mon makefile corrigé:
NOM = lapinoux

override CXXFLAGS+=-Wall
LDFLAGS = `sdl-config --cflags --libs` -lSDL_ttf -lfreetype -lSDL

#Liste des objets à lies pour produire l'executable
OBJETS = main.o animal.o lapin.o renard.o pile.o carte.o graph.o


#Regle generale de production des objets

#Regle de production de l'executable
#$(CXX) $(LDFLAGS) $^ -o $@
#$(REP_EXEC)/$(NOM).$(VERSION): $(OBJETS)
$(NOM): $(OBJETS)
	$(CXX) $^ -o $@ $(LDFLAGS)


clean:
	@$(RM) *.o *~ *.*~


Merci !
0