Makefile 调试生成文件

Makefile 调试生成文件,makefile,gnu-make,Makefile,Gnu Make,某些Makefile包含以下内容- ifneq ($(call try-cc,$(SOURCE_LIBUNWIND),$(FLAGS_UNWIND),libunwind),y) msg := $(warning No libunwind found, disabling post unwind support. Please install libunwind-dev[el] >= 0.99); NO_LIBUNWIND := 1 及 每当我运行这个mak

某些Makefile包含以下内容-

ifneq ($(call try-cc,$(SOURCE_LIBUNWIND),$(FLAGS_UNWIND),libunwind),y)
        msg := $(warning No libunwind found, disabling post unwind support. Please install libunwind-dev[el] >= 0.99);
        NO_LIBUNWIND := 1
及 每当我运行这个make时,我都会收到如下错误消息

warning No libunwind found, disabling post unwind support. Please install libunwind-dev[el] >= 0.99
我想调试这个问题-我想知道
SOURCE\u LIBUNWIND
FLAGS\u UNWIND

导致此问题的原因是什么?如何在标准输出上打印这些值以进行调试?

要在makefile中打印宏X的值,只需添加行即可。(印刷品的种类)


$(警告X是$(X))

make提供了几个可用于打印变量值的函数:
$(错误…
$(警告…
$(信息…
)。手册在第节中提到了它们


此外,您可以使用命令行参数
-p
--print database
打印所有规则和变量的值。将输出重定向到文件并进行分析,这可能会让您更好地理解为什么这些值是这样的。有关更多信息,请参见第节。

Reinier和Shraddha对所问问题有正确的答案,但我不确定这是正确的问题

在我看来(仅基于makefile发布的片段),这些变量更可能是您可以设置的变量,而不是已经设置的变量。也就是说,它们将是您控制用于定位libunwind的位置的方式


因此,如果try-cc调用失败,我认为这意味着您要么根本没有安装libunwind,要么将其安装在非标准系统位置,并且没有设置这些变量来告诉make。try-cc类似于define try-cc$1 endef。也许你可以去那里看看