![Makefile - 提供可选参数](https://linux22.com/image/189451/Makefile%20-%20%E6%8F%90%E4%BE%9B%E5%8F%AF%E9%80%89%E5%8F%82%E6%95%B0.png)
我对脚本和 makefile 非常陌生,并且对命令行参数的传递感到好奇。因此,假设我有一个 makefile,它可以用 C 语言编译和运行某些内容,例如
CompileAndRun: CompileFile RunFile
CompileFile:
(Compiling code)
RunFile:
./Program
我会这样称呼它
make CompileAndRun
我想要发生的是,如果我输入
make CompileAndRun Argument
然后它会编译,然后执行
./Program Argument
我该怎么办呢?
答案1
执行此操作的惯用方法是传递多变的然后您可以在 Makefile 中引用它,例如:
CompileAndRun: CompileFile RunFile
CompileFile:
(Compiling code)
RunFile:
./Program $(ARGUMENTS)
您现在可以make RunFile
在不带任何参数的情况下运行它,或者make ARGUMENTS="foo bar" RunFile
使用两个参数foo
和来运行它bar
。请注意,您不能以这种方式传递包含空格字符的参数。