我在哪里把CFLAGS放在这个makefile中?需要-g所以我可以使用gdb调试器

时间:2014-03-10 00:14:16

标签: c makefile

我不熟悉我的老师为我们的一个家庭作业创建的这种样式的makefile,因为它没有gcc命令。这是makefile。我需要知道的是放置-g cflag的位置。

    ### Architecture choice

    #Uncomment for 64-bit
    LIBRARY = libmtron.a

    #Uncomment for 32-bit
    #LIBRARY = libmtron32.a

    ### File lists
    BINS = simulate
    OBJS = driver.o

    ### Phony targets all/clean

    .PHONY: all clean

    all: $(BINS)

    clean: 
        $(RM) $(BINS) $(OBJS)

    ### Build rules

    # Be sure to link in the library
    $(BINS): $(OBJS) $(LIBRARY)

    # update if the header file is changed
    driver.o: driver.h mtron.h

    simulate: mtron.h

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这个makefile正在利用make的内置规则集来创建对象和链接可执行文件,而不是让你自己输入它们。

Make有一个看起来(或多或少)的默认规则:

%.o : %.c
        $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<

如果您没有自己指定任何规则来构建.o并且需要构建一个并且它具有.c,那么它将使用默认的内置规则。

所以,你的问题的答案是,“将CFLAGS的任务放在你想要的任何地方”。无论你把它放在哪里,它都将被默认规则使用。