0

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

CC = $(shell if test -f /opt/local/bin/gcc-mp-4.7; 然后\
        回声 gcc-mp-4.7;否则回声 gcc;菲)
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 $


全部:$(TESTS) hhtest
    @echo "*** 运行 'make check' 或 'make check-all' 来检查你的工作。"

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

检查: $(TESTS) $(patsubst %,check-%,$(TESTS))
    @echo "*** 所有测试都成功了!"

检查所有:$(测试)
    @x=真;对于我在 $(TESTS); 做 $(MAKE) 检查-$$i || x=假;完毕; \
    如果 $$x; 然后 echo "*** 所有测试成功!"; 菲; $$x

检查测试%:测试%
    @test -d 输出 || mkdir 输出
    @rm -f out/test$*.fail
    @-sh -c "./$^ > out/test$*.output 2>&1" >/dev/null 2>&1; 真的
    @perl compare.pl out/test$*.output test$*.c test$*

干净的:
    rm -f $(TESTS) hhtest *.o
    rm -rf 输出

MALLOC_CHECK_=0
导出 MALLOC_CHECK_

.珍贵:%.o
.PHONY:所有干净检查检查-%准备检查
4

1 回答 1

0

它实际上应该是重击手而不是重击手

于 2012-10-03T05:27:28.297 回答