从makefile 2运行可执行文件

时间:2016-11-17 21:55:32

标签: makefile

我应该怎么做我的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 ...

1 个答案:

答案 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 $@

使用不同的目标来运行测试可以在不执行测试的情况下构建测试。