Android.mk 调试输出
我正在构建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脚本没有正确执行。