Bonjour,
j'avais écrit il y a une semaine pour savoir si quelqu'un avait un makefile générique (sans lister tous les noms), qui compilait du C et du C++.
Je vous donne donc la solution que j'ai trouvé :
Il faut savoir que mes fichiers *.c sont dans un dossier Src, mes *.h dans un dossier Include, les objets dans Objet et le fichier binaire généré va dans Bin.
CC=gcc
CPP=g++
# Les différents répertoires contenant respectivement les fichiers : Sources *.c, Headers *.h, Objets *.o, l'exécutable
SRCDIR=Src
HEADDIR=Include
LIBDIR=Objet
BINDIR=Bin
# Les différentes options de compilations, soyons strictes !
CFLAGS= -I$(HEADDIR) -g -Wall -pedantic
# Les différents FrameWorks et bibliothèques pour le linkage
GLLIBS = #Les différentes lib et frameworks dont vous avez besoin
# L'exécutable
BIN=Caracterisation
# Où trouver les différents sources *.c qu'il faudra compiler pour créer les objets correspondants
SRC= $(wildcard $(SRCDIR)/*.c)
OBJ= $(SRC:$(SRCDIR)/%.c=$(LIBDIR)/%.o)
# Où trouver les différents sources *.cpp qu'il faudra compiler pour créer les objets correspondants
SRCPP= $(wildcard $(SRCDIR)/*.cpp)
OBJCPP= $(SRCPP:$(SRCDIR)/%.cpp=$(LIBDIR)/%.o)
all: $(BIN)
#Création de l'exécutable
Caracterisation: $(OBJ) $(OBJCPP)
$(CC) -o $(BINDIR)/$@ $^ $(CFLAGS) $(GLLIBS)
# Création des différents *.o à partir des *.c
$(LIBDIR)/%.o: $(SRCDIR)/%.c $(HEADDIR)/%.h
$(CC) -o $@ -c $< $(CFLAGS)
# Création des différents *.o à partir des *.cpp
$(LIBDIR)/%.o: $(SRCDIR)/%.cpp $(HEADDIR)/%.h
$(CPP) -o $@ -c $< $(CFLAGS)
Voilà pour ceux qui voudrait avoir un super makefile sans copier tout les noms des fichiers.
Bien évidemment, ce makefile fonctionne si vous avez qeu des .c ou .cpp.
@++

 

 
		
		 
         
 

 
			
			


 
  
 
 
			 
   
 


 Solution pour un makefile générique qui compile du C et C++
 Solution pour un makefile générique qui compile du C et C++
				 ton poste tu dois marquer quand la bonne réponse tu as obtenu.
 ton poste tu dois marquer quand la bonne réponse tu as obtenu. Répondre avec citation
  Répondre avec citation
Partager