我正在尝试将make变量的值转储到文件中以供进一步处理.
到目前为止,我已经能够使用以下规则将值打印到命令行:
print-%:
@echo '$*=$($*)'
Run Code Online (Sandbox Code Playgroud)
您使用命令行调用的
make print-VAR
Run Code Online (Sandbox Code Playgroud)
我真的不想在stdout上,但打印到文件.GNU Make"文件"功能看起来像我应该使用的东西:http: //www.gnu.org/software/make/manual/html_node/File-Function.html#File-Function
该页面立即跳转到一个复杂的例子中,所以我已经实现了以下但似乎无法使它工作:它将@echo打印到stdout,但当我查看我的目录时没有output.txt文件.
printf-%:
@echo '$*=$($*)'
$(file > output.txt,$($*))
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
编辑:好吧,看起来我可以使用
@echo '$($*)' > output.txt
Run Code Online (Sandbox Code Playgroud)
做我想做的事,但这仍然无法解释为什么我的文件调用不起作用.
评论部分的两个回复:
1)要获得所需的功能,只需将"@echo"语句重定向到文件即可
printf-%:
@echo '$*=$($*)' > output.txt
Run Code Online (Sandbox Code Playgroud)
2)文件功能不起作用的原因是它是Make v4.0和更新的功能,而不是3.8,这是我使用的版本.