Créer un Makefile Modulaire

CBeginner
Pratiquer maintenant

Introduction

Dans ce défi, vous allez apprendre à concevoir un Makefile fondamental pour compiler un programme C simple. Vous découvrirez comment les fichiers Makefile permettent d'automatiser le processus de construction et de gérer efficacement plusieurs fichiers sources.

Créer un Makefile de base

Pour ce défi, votre mission consiste à élaborer un Makefile de base afin de compiler un programme C. Ce projet est constitué de deux fichiers sources : hello.c et utils.c. Le fichier hello.c contient la fonction principale (main) qui affiche un message sur la console, tandis que le fichier utils.c contient une fonction utilitaire appelée par la fonction principale.

Tâches

  • Créer un fichier Makefile capable de compiler le programme.
  • Ajouter des règles pour compiler les deux fichiers sources séparément.
  • Ajouter une cible clean pour supprimer les fichiers compilés.

Critères requis

  • Utiliser les fichiers sources fournis dans le répertoire ~/project.
  • Le Makefile doit impérativement compiler hello.c et utils.c.
  • Générer un exécutable nommé hello.
  • Inclure une règle clean.
  • Utiliser GCC comme compilateur.

Exemples

Exécutez les commandes suivantes pour compiler le programme :

cd ~/project
make
gcc -c hello.c
gcc -c utils.c
gcc hello.o utils.o -o hello

Lancer le programme compilé :

./hello

Exemple de sortie du programme :

Hello, World!
Utility function called!

Une fois le programme testé, procédez au nettoyage des fichiers générés.

Conseils

  • N'oubliez pas d'utiliser des tabulations (TAB) pour l'indentation dans le Makefile.
  • Utilisez l'option -c pour transformer les fichiers sources en fichiers objets.
  • Vérifiez toujours le bon fonctionnement du programme après la compilation.

Résumé

Ce défi vous a permis de vous familiariser avec la création de fichiers Makefile. Vous avez appris à rédiger un Makefile simple pour compiler plusieurs fichiers sources, générer un exécutable et nettoyer les résidus de compilation. Ces compétences sont fondamentales pour la gestion de projets de programmation en langage C.

✨ Vérifier la solution et pratiquer