我应该怎么做我的makefile,不仅要构建和编译“test”,而且在终端输入“make test”时实际运行它,所以我不必每次都做./test?
LDFLAGS = -lm -L. -lhashi
CFLAGS = -g -Wall -std=c99
SRC=$(wildcard *.c)
OBJETS = $(SRC:.c=.o)
all : prog1 prog2 test
...
test : test_game1.o test_toolbox.o libhashi.a
$(CC) $^ $(LDFLAGS) -o $@
test_game1.o : test_game1.c game.h node.h test_toolbox.h test_game_eliott.c test_game_flo.c test_game_iana.c test_game_remi.c
test_toolbox.o : test_toolbox.c test_toolbox.h
clean :
rm -f ... test_game1.o test_toolbox.o test ...
答案 0 :(得分:1)
你需要一个虚假的目标。 (https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html)。
例如:
.PHONY: run-test
run-test: test
./test
test: test_game1.o test_toolbox.o libhashi.a
$(CC) $^ $(LDFLAGS) -o $@
使用不同的目标来运行测试可以在不执行测试的情况下构建测试。