makefile可以用来读取输入文件吗?

时间:2013-11-06 05:22:23

标签: c makefile

我正在为一个C类项目工作,其中链接和编译是通过makefile完成的(感谢上帝!)。

但在那之后,我仍然需要输入终端中的所有输入和输出文件名(argv [] stuff):

    ./proj c880.isc c880.vec c880.faults c880.out

我的(愚蠢)问题是:你能以某种方式准备你的makefile,这样我只需输入:

    ./proj 880

一切都得到了解决?当我不得不用不同数字的文件运行整个时间时,我讨厌它...

感谢您的时间。

2 个答案:

答案 0 :(得分:2)

我认为我不太明白你在问什么。但你绝对可以写出这样的规则:

proj-%: proj
        $< c$*.isc c$*.vec c$*.faults c$*.out

然后运行make proj-880make proj-900或其他任何内容。

答案 1 :(得分:2)

经典地,您需要添加test目标(可能是.PHONY目标):

.PHONY: test

test: proj
     ./proj c880.isc c880.vec c880.faults c880.out

您也可以将c880.isc等文件列为依赖项。

您也可以参数化它:

TEST = c880
PROG = proj
TEST_ARGS = ${TEST}.isc ${TEST}.vec ${TEST}.faults ${TEST}.out

.PHONY: test

test: ${PROG} ${TEST_ARGS}
    ./${PROG} ${TEST_ARGS}

或者您可能需要将`$ {TEST} .out与其他人分开处理;这说起来有点棘手,但这个想法的要点就是。