如何在NDK-build Android.mk文件中使用echo或print打印变量以调试编译?

73
我正在尝试使用ndk-build编译库时打印一些额外信息。例如:
LOCAL_PATH := $(call my-dir)
all:;echo $(LOCAL_PATH)
echo: $(LOCAL_PATH)
print:echo "i'm not working"

我运行ndk-build时,只编译了所有的Android.mk,但是没有得到控制台回显。我已经阅读了GNU make手册(ndk-build只是一个小型的GNU make),以及一些帖子中说echo必须使用$(VAR),但在我的情况下不起作用。

有什么想法吗?

3个回答

133

使用

LOCAL_PATH := $(call my-dir)
$(warning $(LOCAL_PATH))

57
更正确的函数调用方式是 "$(info ...)":
LOCAL_PATH := $(call my-dir)
$(info $(LOCAL_PATH))

1
只是一个建议,使用$(info)会导致编译问题,在Windows中编译失败,但在Linux中不会。如果有人遇到添加info的实验问题,请注意。我开始使用CMake编译,而不是Android.mk,因为它的工作效果更好。 - vgonisanz

31

Android.mk中可用的显示如下:

  • error:调试打印+停止构建
  • info:基本调试打印
  • warning:与info相同,但显示插入位置的行号

以下是一些示例:

$(error this is the error message that will stop the build process)
$(warning this the warning msg)
$(info this the info msg)

info 只在 NDK 构建中可用。 - Lucas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接