COURS SUR LE MAKEFILE
Un Makefile est un fichier qui contient un ensemble d'instructions pour compiler et lier un projet.
Voici un exemple de Makefile pour votre projet :
makefile
CXX = g++
CXXFLAGS = -std=c++11 -Wall -Wextra
SRCDIR = src
OBJDIR = obj
BINDIR = bin
SRCS = $(wildcard $(SRCDIR)/*.cpp)
OBJS = $(patsubst $(SRCDIR)/%.cpp, $(OBJDIR)/%.o, $(SRCS))
EXEC = $(BINDIR)/main
all: $(EXEC)
$(EXEC): $(OBJS)
$(CXX) $(CXXFLAGS) $^ -o $@
$(OBJDIR)/%.o: $(SRCDIR)/%.cpp
@mkdir -p $(@D)
$(CXX) $(CXXFLAGS) -c $< -o $@
clean:
rm -rf $(OBJDIR) $(BINDIR)
.PHONY: all clean
Dans ce Makefile :
• CXX est le compilateur C++ utilisé (ici, g++).
• CXXFLAGS sont les drapeaux du compilateur (options de compilation).
• SRCDIR est le répertoire contenant les fichiers source.
• OBJDIR est le répertoire où seront placés les fichiers objets.
• BINDIR est le répertoire où sera placé l'exécutable.
• SRCS est la liste des fichiers source.
• OBJS est la liste des fichiers objets.
• EXEC est le nom de l'exécutable final.
Les règles de construction sont les suivantes :
• all: La cible par défaut, qui construit l'exécutable.
• $(EXEC): La règle pour construire l'exécutable à partir des fichiers objets.
• $(OBJDIR)/%.o: La règle pour construire un fichier objet à partir d'un fichier source.
• clean: La cible pour nettoyer les fichiers objets et l'exécutable.
Pour utiliser ce Makefile, placez-le dans le répertoire racine de votre projet et créez les sous-
répertoires src, obj et bin. Ensuite, mettez vos fichiers source dans le répertoire src, puis
exécutez simplement make dans votre terminal pour compiler votre projet. L'exécutable sera généré
dans le répertoire bin.
Assurez-vous d'avoir g++ et make installés sur votre système Ubuntu. Si ce n'est pas le cas, vous
pouvez les installer en exécutant la commande suivante :
DANS LE TERMINAL ON TAPE :
sudo apt install g++ make
Pour exécuter le Makefile que nous avons créé, suivez ces étapes :
1. Assurez-vous d'avoir placé le Makefile dans le répertoire racine de votre projet, où se
trouvent également vos fichiers source ([Link], [Link], member.h, etc.).
2. Ouvrez un terminal.
3. Accédez au répertoire de votre projet en utilisant la commande
Une fois dans le répertoire de votre projet, exécutez la commande make :
DANS LE TERMINAL ON TAPE :
make
Cela lancera le processus de compilation en utilisant les règles définies dans le Makefile.
5. Si la compilation se déroule sans erreur, vous obtiendrez un exécutable nommé main (ou le
nom que vous avez spécifié dans votre Makefile, si vous l'avez modifié). Vous pouvez
maintenant l'exécuter en tapant :
DANS LE TERMINAL ON TAPE :
./bin/main