所以我正在努力实现自己的类似于链表的数据结构
并且我已经创建了一个生成文件,该文件用测试用例文件编译我的.c
文件,该用例文件检查我的实现是否行为正确
原本我的make文件现在可以正常工作,但是如果我需要更改测试用例,则必须手动编辑我的make文件
test:
gcc -o test LL.c testcase00.c -g
./test
clean:
rm test
我想知道是否有一种方法可以传递我在调用make
时要测试的测试用例的编号,就像make 05
会自动编译我的LL.c
testcase05.c
并假设所有文件都在同一目录中。
谢谢!
答案 0 :(得分:1)
下面的makefile文件将生成一个可执行文件testcase
,该文件由其中一个测试用例的目标文件组成。
像make TEST_ID=02
一样被调用时,它将使用testcase02.c
。
这不是依靠gmake
明确规则(通常是有效的)来明确宣布编译规则。
.PHONY: all
all: testcase
testcase: testcase$(TEST_ID).o
@echo "making test $(TEST_ID)..."
gcc $(LDFLAGS) -o $@ $^
或者,如果您需要一起构建和运行,则可以使其更加简单(对所有内容使用隐式,它将生成并运行名为testcase$(TEST_ID)
的可执行文件):
.PHONY: all
all: testcase$(TEST_ID)
@echo "running test $(TEST_ID)..."
$^
答案 1 :(得分:0)
bash $ make NN = 05
在Makefile中:
SRC=testcase$(NN).c
test:
gcc -o test LL.c $(SRC) -g
答案 2 :(得分:0)
on_enter
在此生成文件# default testcase
case ?= 00
test:
gcc -o test LL.c testcase$(case).c -g
./test
clean:
rm test
中设置默认变量名。环境变量和命令行将覆盖此默认值。所以
case ?= 00
将使用make
testcase00.c
将使用make case=05
和
testcase05.c
将使用export case=07
make