【发布时间】:2020-12-11 18:14:28
【问题描述】:
我的 Makefile 包含类似的东西
BASE_VAR=$(cat path/to/value.txt)
DERIVED_VAR=$(if $(BASE_VAR),foo,bar)
这不会产生我预期的结果。 make --debug=a 会生成详细的跟踪信息,但 path/to/value.txt 不会出现在其中的任何位置。如何在 makefile 中调试这种变量赋值?
【问题讨论】:
-
我不完全确定我理解你想要达到的目标,但我怀疑
BASE_VAR=$(cat path/to/value.txt)应该是BASE_VAR=$(shell cat path/to/value.txt)。 -
我不想帮助调试这组特定的变量。我想了解如何调试 make 如何一般地 填充其变量。输出如“执行
foo bar并将'RESULT'分配给VARIABLE”。 -
Make 没有提供类似的东西。你只需要知道它是如何工作的。喜欢的可以看翻拍:bashdb.sourceforge.net/remake
-
你可以运行
make -p,make会打印出它解析的最终结果。这在某些情况下可能会有所帮助,但不会帮助您解决上述错误。