Nasıl debug ve release oluşturur benim makefile yapılandırabilirsiniz?
Projem için aşağıdaki makefile ve serbest bırakılması için yapılandırmak istiyorum ve hata ayıklama oluşturur. Benim kod, yerde #ifdef DEBUG makrolar çok işim var, bu yüzden sadece bu makro ayarı ve '-g3-gdwarf2' Derleyiciler için bayraklar. ekleme meselesi Bunu nasıl yapabilirim?
EDİT: Sadece netleştirmek için, ben diyince serbest/hata ayıklama oluşturur istiyorum edebilmek için sadece 'make' yazın ve bir yayın oluşturma ya da 'hata ayıklama' ve bir hata ayıklama yapı olmadan el ile dışarı yorum şeylere makefile.
$(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
CEVAP
Target-specific Variable Values kullanabilirsiniz. Örnek:
$(CXXFLAGS) = -g3 -gdwarf2
$(CCFLAGS) = -g3 -gdwarf2
all: executable
debug: CXXFLAGS = -DDEBUG -g
debug: CCFLAGS = -DDEBUG -g
debug: executable
executable: CommandParser.tab.o CommandParser.yy.o Command.o
$(CXX) -o output CommandParser.yy.o CommandParser.tab.o Command.o -lfl
CommandParser.yy.o: CommandParser.l
flex -o CommandParser.yy.c CommandParser.l
$(CC) -c CommandParser.yy.c
Kullanın(CXX) $için unutma veya(CC) $tüm derleme komutları.
Sonra, 'hata ayıklama'- DDEBUG ve-g gibi ekstra bayrakları olacak'.'
Bir yan not olarak, diğer mesaj da öne sürdüğü gibi, Makefile çok daha kısa yapabilirsiniz.
Nasıl geçerli Gıt benim şubesinden (iz...
Nasıl gıt iptalleri için benim tercihi...
Nasıl pi benim hesaplama doğru olup ol...
Nasıl Android bir URL açmak'benim...
Nasıl benim Android uygulaması crash-v...