Mam następujący plik Makefile dla mojego projektu i chciałbym go skonfigurować do wydania i debugowania kompilacji. W moim kodzie mam wiele makr #ifdef DEBUG
w miejscu, więc jest to po prostu kwestia ustawienia tego makra i dodania flag do -g3 -gdwarf2
kompilatorów. Jak mogę to zrobić?Jak mogę skonfigurować plik Makefile do kompilacji debugowania i wydania?
$(CC) = g++ -g3 -gdwarf2
$(cc) = gcc -g3 -gdwarf2
all: executable
executable: CommandParser.tab.o CommandParser.yy.o Command.o
g++ -g -o output CommandParser.yy.o CommandParser.tab.o Command.o -lfl
CommandParser.yy.o: CommandParser.l
flex -o CommandParser.yy.c CommandParser.l
gcc -g -c CommandParser.yy.c
CommandParser.tab.o: CommandParser.y
bison -d CommandParser.y
g++ -g -c CommandParser.tab.c
Command.o: Command.cpp
g++ -g -c Command.cpp
clean:
rm -f CommandParser.tab.* CommandParser.yy.* output *.o
Właśnie w celu wyjaśnienia, kiedy mówię, uwolnienie/debug buduje, Chcę móc wpisz make
i uzyskać kompilacji uwolnienia lub make debug
i uzyskać build debugowania, bez ręcznego zakomentowanie rzeczy w makefile.
Uwaga! $ (CC) = coś jest inne niż CC = coś – levif
Wykonywany cel narusza złotą regułę plików Makefile: każdy cel powinien zaktualizować plik nazywający cel, w twoim przypadku "wykonywalny". – JesperE
^A jeśli nie, to powinno być zadeklarowane '.PHONY' –