Thông tin

Tác giả François De Keersmaeker
Hạn chót Không có hạn chót
Giới hạn nộp bài Không có giới hạn

Đăng nhập

Décomposition d'un programme en modules - Makefile

Soit le programme C définit par les 3 fichiers suivants:

main.c:

#include <stdlib.h>
#include <stdio.h>
#include "module_a.h"
#include "module_b.h"

extern char* str_a;
extern char* str_b;

void func_a() {
  printf("%s\n", str_a);
  printf("%s\n", str_b);
  func_c();
}

int main(int argc, char const *argv[]) {
  func_a();
  func_b();
  func_c();
  return EXIT_SUCCESS;
}

module_a.c:

#include "module_a.h"

char* str_a = "Bonjour";
static char* str_b = "Salut";

static void func_a() {
  printf("%s\n", str_b);
}

void func_b() {
  func_a();
}

static void func_c() {
  printf("Ciao");
}

module_b.c:

#include "module_b.h"

static char* str_a = "Coucou";
char* str_b = "Hello";

static void func_b() {
  static int a = 0;
  int b = 0;
  printf("%s (a = %d; b = %d)\n", str_a, a, b);
  a++;
  b++;
}

void func_c() {
  func_b();
}

Câu hỏi 1: Makefile

Proposez un Makefile qui permette de compiler, simplement avec la commande make, ce programme en un exécutable nommé prog.

Attention: vérifiez que chaque ligne d'une règle commence bien par une indentation, et pas une série d'espaces.

Câu hỏi 2: Make clean

Ajoutez une règle clean, permettant de supprimer tous les fichiers créés par la compiltion, dont l'exécutable, au Makefile de l'exercice précédent.

Soumettez le Makefile complet, pas uniquement la règle clean.

Attention: vérifiez que chaque ligne d'une règle commence bien par une indentation, et pas une série d'espaces.