makefile maître et makefile
Ce n'est peut être pas le bon forum pour l'outil make mais bon puisque j'écrit en C. En plus quand je vois ce qu'il a offrir, je me dit qu'il aurait bien une place à part sur le site.
Bref, j'ai makefile principale (maître) dont voici la source qui m'as inspiré : https://gl.developpez.com/tutoriel/outil/makefile/
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
| #makefile maitre
export CC=gcc
export CFLAGS = -std=c99 -lglut -lGL -lGLU -lpng -Wall -g
#export LDFLAGS=
#export INCLUDES=
#export DEFINE = -DTCP_DELAY_BIND_ALL
GAME_DIR=game
EXEC=$(GAME_DIR)/GAME
#default: $(EXEC)
#all: default
all: $(EXEC)
$(EXEC):
@(cd $(GAME_DIR) && $(MAKE))
#@(cd $(????_DIR) && $(MAKE))
.PHONY: clean mrproper $(EXEC)
clean:
@(cd $(GAME_DIR) && $(MAKE) $@)
#@(cd $(????_DIR) && $(MAKE) $@)
zip :
zip Jacquets_JumpingBanana.zip *.c *.h makefile makefile2 images/*/* data/* |
Ensuite dans un dossier game, j'ai un fichier game.c et game.h et le makefile suivant :
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
| #sous makefile
EXEC = jb
SRC= $(wildcard *.c)
OBJ= $(SRC:.c=.o)
#default: $(EXEC)
#all: default
all: $(EXEC)
game: $(OBJ)
@$(CC) -o $@ $^ $(LDFLAGS)
#$(CC) $(CFLAGS) -c $< -o $@
%.o: %.c
@$(CC) -o $@ -c $< $(CFLAGS) $(INCLUDES)
.PRECIOUS: $(TARGET) $(OBJECTS)
$(EXEC) : $(OBJ)
$(CC) -o $(EXEC) $(OBJ) $(CFLAGS)
.PHONY: clean mrproper
clean:
@rm -rf *.o
@rm -rf $(EXEC) |
Actuellement mon makefile ne retrouve pas ma main dans le dossier PARENT, voici le message d'erreur :
Code:
1 2 3 4 5 6 7 8 9 10
| make[1]*: on entre dans le répertoire «*/home/sam/Bureau/jumpingbanana/ProjetBanana/Game (copie)/outilMake/game*»
gcc -o jb game.o -std=c99 -lglut -lGL -lGLU -lpng -Wall -g
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o*: Dans la fonction «*_start*»*:
(.text+0x20)*: référence indéfinie vers «*main*»
collect2: error: ld returned 1 exit status
makefile:21: recipe for target 'jb' failed
make[1]: *** [jb] Error 1
make[1]*: on quitte le répertoire «*/home/sam/Bureau/jumpingbanana/ProjetBanana/Game (copie)/outilMake/game*»
makefile:16: recipe for target 'game/GAME' failed
make: *** [game/GAME] Error 2 |