2015-06-30 97 views
0

这可能是一个很小的问题,但我不知道如何解决它。我有一个C程序和一个名为“输入”的文件夹。是否可以编写允许我输入“make run”的规则,然后执行所有测试实例,将结果写入单个文件?如何从Makefile运行所有输入测试文件?

我想象它是这样的:

run: test1 test2 test3 

test1: 
    ./myproj <arq1.in> output.out 

test2: 
    ./myproj <arq2.in> output.out 

... 

但是我怎么做到这一点大家都写入到同一个文件,即追加的结果,而不是改写呢?可能吗?

在此先感谢

回答

3

首先切换到“>>”到追加到输出文件:

run: test1 test2 test3 

test1: 
    ./myproj <arq1.in>> output.out 

test2: 
    ./myproj <arq2.in>> output.out 

test3: 
    ./myproj <arq3.in>> output.out 

然后使这些目标的假,因为他们(即它们不建立文件命名为 “测试1”, “TEST2” 和 “TEST3”):

.PHONY: test1 test2 test3 

然后切换到一个static pattern rule

run: test1 test2 test3 

.PHONY: test1 test2 test3 

test1 test2 test3: test%: 
    ./myproj < arq$*.in >> output.out 

进一步改进是可能的,但现在已经足够了。

+0

@EtanReisner:完全没有,谢谢你的纠正。 – Beta

相关问题