Makefile无法正常工作 - 添加新文件

时间:2012-10-03 04:46:07

标签: c makefile

我正在使用这个预制的makefile。我尝试为我添加到应用程序中的那两个文件添加heavyhitter.o和heavyhitter.h,但是我无法让它工作。我已经添加了metadata_record.h和metadata_record.o没有问题,因为我正在添加到同一个区域,我不确定它为什么之前有效但现在不是。

CC = $(shell if test -f /opt/local/bin/gcc-mp-4.7; then \
        echo gcc-mp-4.7; else echo gcc; fi)
CFLAGS = -std=gnu99 -g -W -Wall -O0 -gstabs -Iglib-2.0 -lglib-2.0

TESTS = $(patsubst %.c,%,$(sort $(wildcard test[0-9][0-9][0-9].c)))

%.o: %.c m61.h memory.h metadata_record.h heavyhitters.h
    $(CC) $(CFLAGS) -o $@ -c $


all: $(TESTS) hhtest
    @echo "*** Run 'make check' or 'make check-all' to check your work."

test%: test%.o m61.o memory.o metadata_record.o heavyhitters.o
    $(CC) $(CFLAGS) -o $@ $^

test017: test017-help.o

hhtest: hhtest.o m61.o memory.o metadata_record.o heavyhitters.o
    $(CC) $(CFLAGS) -o $@ $^ -lm

check: $(TESTS) $(patsubst %,check-%,$(TESTS))
    @echo "*** All tests succeeded!"

check-all: $(TESTS)
    @x=true; for i in $(TESTS); do $(MAKE) check-$$i || x=false; done; \
    if $$x; then echo "*** All tests succeeded!"; fi; $$x

check-test%: test%
    @test -d out || mkdir out
    @rm -f out/test$*.fail
    @-sh -c "./$^ > out/test$*.output 2>&1" >/dev/null 2>&1; true
    @perl compare.pl out/test$*.output test$*.c test$*

clean:
    rm -f $(TESTS) hhtest *.o
    rm -rf out

MALLOC_CHECK_=0
export MALLOC_CHECK_

.PRECIOUS: %.o
.PHONY: all clean check check-% prepare-check

1 个答案:

答案 0 :(得分:0)

实际上应该是重型人物而非重型人物