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

Résolu
z980x Messages postés 918 Statut Membre -  
z980x Messages postés 918 Statut Membre -
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 *~ *.*~ </pre>

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 !

--
C'est dans ces moments là qu'on préfère Linux !

2 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    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
  2. z980x Messages postés 918 Statut Membre 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