Mon premier Makefile : quelques soucis
Bonjour à tous,
Pour un projet en C++, j'ai créé mon premier Makefile à l'aide du tutoriel de developpez.com qui est très bien fait. Cependant, après plusieurs heures de recherche je ne comprends toujours pas la source de mon problème.
En effet, tout compile avec g++ lorsque je n'utilise pas le Makefile, j'ai pensé que cela venait des dépendances (.h), apparemment non. Auriez-vous une idée ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| CC=g++
EXEC=af2j
CFLAGS=-W -Wall -ansi -pedantic
all: $(EXEC)
af2j: main.o menus.o ihm_fonctions.o Projet.o CommonFunctions.o Texte.o Editeur.o DicoBalises.o Convertisseur.o
$(CC) -o $@ $^ $(LDFLAGS)
# IHM
main.o: main.cpp ihm_fonctions.h menus.h CommonFunctions.h Projet.h
$(CC) -o $@ $< $(LDFLAGS)
menus.o: menus.cpp menus.h CommonFunctions.h Projet.h
$(CC) -o $@ $< $(LDFLAGS)
ihm_fonction.o: ihm_fonctions.cpp ihm_fonctions.h CommonFunctions.h Projet.h
$(CC) -o $@ $< $(LDFLAGS)
# Gestion de projet
Projet.o: Projet.cpp Projet.h Texte.h Fichier.h FileError.h
$(CC) -o $@ $< $(LDFLAGS)
CommonFunctions.o: CommonFunctions.cpp CommonFunctions.h Projet.h Texte.h Fichier.h FileError.h
$(CC) -o $@ $< $(LDFLAGS)
Texte.o: Texte.cpp Texte.h Fichier.h FileError.h
$(CC) -o $@ $< $(LDFLAGS)
# Gestion de l'éditeur
Editeur.o: Editeur.cpp Editeur.h
$(CC) -o $@ $< $(LDFLAGS)
# Convertisseur
DicoBalises.o: DicoBalises.cpp DicoBalises.h
$(CC) -o $@ $< $(LDFLAGS)
Convertisseur.o: Convertisseur.cpp Convertisseur.h DicoBalises.h Texte.h FileError.h
$(CC) -o $@ $< $(LDFLAGS)
clean:
rm -f main.o menus.o ihm_fonctions.o Projet.o CommonFunctions.o Texte.o Editeur.o DicoBalises.o Convertisseur.o |
L'erreur retournée par g++ est :
Code:
1 2 3 4 5 6
| g++ -o main.o main.cpp
/tmp/cctIrv8e.o: In function `main':
main.cpp:(.text+0x7): undefined reference to `MenuPrincipal()'
collect2: ld returned 1 exit status
make: *** [main.o] Erreur 1
zsh: exit 2 make |
Je précise que la fonction MenuPrincipal() est la première fonction appelée dans le fichier main.cpp, et qu'elle est déclarée dans menus.h qui est bien inclus dans main.cpp.
Merci d'avance