Android.mk 调试输出

4 投票
2 回答
4992 浏览
提问于 2025-04-16 04:46

我正在构建Froyo,想知道在构建过程中,make/python能否输出当前正在调用的文件和命令。

举个例子,在某个Android.mk文件里,有一行代码是,echo build success。这样在显示器上会显示“build success”,但我希望除了这个,还能显示“Android.mk第20行:echo build success”。

这样做可以吗?

2 个回答

2

Android的消息解析器在处理你的Android.mk文件时,可以接受信息和警告标签。

比如说,如果你想打印一个内部变量的值:

LOCAL_CFLAGS := -DHAVE_ERRNO_H -g
$(info value of LOCAL_CFLAGS is: $(LOCAL_CFLAGS))

这里的info是告诉编译器打印调试信息。

你也可以用warning和error来做类似的事情。

$(warning value of LOCAL_CFLAGS is: $(LOCAL_CFLAGS))

这会打印一个突出显示的警告信息。

$(error value of LOCAL_CFLAGS is: $(LOCAL_CFLAGS))

则会打印消息并停止构建过程。

2

我刚刚遇到一个奇怪的情况,使用$(info)在编译一个Java+C++的Android应用时出现了问题:

我在主应用的Android.mk文件中用$(info)输出了一些关于条件编译的信息。当我尝试调试程序的本地部分时,使用ndk-gdb工具失败了,因为显然$(info)的输出被ndk-gdb脚本读取了(它使用了get_build_var()和get_build_var_for_abi()这两个函数)。结果就是ndk-gdb脚本没有正确执行。

撰写回答