Bonjour,
Je suis récemment passé de l'EDI Code::Blocks à VSCode, et je commence à apprendre comment fonctionne les Makefile. Afin de tester Makefile, je travaille avec un projet simple utilisant la bibliothèque SDL2 (qui ouvre une fenêtre jaune et se ferme dès que j'appuie sur une touche).
Je teste la génération de liste de fichiers (je sais pas comment on appelle ça), mais lorsque je fais ça la compilation ne fonctionne plus pour une raison que je ne comprends pas. Je vous mets ci-dessous mon Makefile qui fonctionne, celui qui ne fonctionne pas, et le message d'erreur qui me donne :
Code Makefile : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #Ici le Makefile où tout va bien CXXFLAGS = -std=c++17 -Wall -Wextra LDFLAGS = -Llib -lmingw32 -lSDL2main -lSDL2 INCFLAGS = -Iinclude bin/main: obj/main.o g++ $(CXXFLAGS) -o bin/main obj/main.o $(INCFLAGS) $(LDFLAGS) obj/main.o: main.cpp g++ $(CXXFLAGS) -o obj/main.o -c main.cpp $(INCFLAGS) $(LDFLAGS)
Code Makefile : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #Ici celui qui me dit nope CXXFLAGS = -std=c++17 -Wall -Wextra LDFLAGS = -Llib -lmingw32 -lSDL2main -lSDL2 INCFLAGS = -Iinclude ODIR := obj OBJ = $(wildcard $(ODIR)/*.o) bin/main: $(OBJ) g++ $(CXXFLAGS) -o bin/main $^ $(INCFLAGS) $(LDFLAGS) obj/main.o: main.cpp g++ $(CXXFLAGS) -o obj/main.o -c main.cpp $(INCFLAGS) $(LDFLAGS)
Je comprends pas vraiment cette erreur, vu que de ce que j'ai compris des directives Makefile, les deux sont équivalents... Quelqu'un pourrait m'aider à comprendre où serait le problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 g++ -std=c++17 -Wall -Wextra -o bin/main -Iinclude -Llib -lmingw32 -lSDL2main -lSDL2 C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: lib/libSDL2main.a(SDL_windows_main.o): in function `main_getcmdline': /Users/valve/release/SDL/SDL2-2.0.14-source/foo-x64/../src/main/windows/SDL_windows_main.c:71: undefined reference to `SDL_main' collect2.exe: error: ld returned 1 exit status mingw32-make: *** [Makefile:9: bin/main] Error 1
Merci d'avance pour votre aide !
Partager