SORU
3 Temmuz 2009, Cuma


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
3 Temmuz 2009, Cuma


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andrea Lewis

    Andrea Lewis

    14 Mart 2013
  • The CGBros

    The CGBros

    20 AĞUSTOS 2011
  • Videojug

    Videojug

    25 EKİM 2006