这可能是一个非常noob的问题,但我不知道如何解决它。我有一个C程序和一个名为“input”的文件夹。是否可以编写允许我键入“make run”然后执行所有测试实例的规则,将结果写入单个文件中?
我想它就像是:
run: test1 test2 test3
test1:
./myproj < arq1.in > output.out
test2:
./myproj < arq2.in > output.out
...
但是我如何实现每个人都写入同一个文件,即附加结果,而不是重写它?有可能吗?
提前致谢
答案 0 :(得分:3)
首先切换到&#34;&gt;&gt;&#34; 追加到输出文件:
run: test1 test2 test3
test1:
./myproj < arq1.in >> output.out
test2:
./myproj < arq2.in >> output.out
test3:
./myproj < arq3.in >> output.out
然后将这些目标设为PHONY,因为它们是(即它们不构建名为&#34; test1&#34;,&#34; test2&#34;&#34; test3&#34;)的文件:
.PHONY: test1 test2 test3
然后切换到static pattern rule:
run: test1 test2 test3
.PHONY: test1 test2 test3
test1 test2 test3: test%:
./myproj < arq$*.in >> output.out
可以进行进一步的改进,但现在已经足够了。