在我的原来的Android.mk中在最后两行增加:
include $(CLEAR_VARS)
include $(call all-subdir-makefiles)
想在编译完本地之后,再编译子目录下的文件,结果不起作用。
换成下面的写法就可以了:
include $(CLEAR_VARS)
include $(call all-makefiles-under,$(LOCAL_PATH))
这个问题就是all-subdir-makefiles,all-makefiles-under带来的区别,all-subdir-makefiles应该是值编译子目录,不管当前目录,all-makefiles-under则是遍历所有的Android.mk。
call all-subdir-makefiles与LOCAL_PATH
LOCAL_PATH:= $(call my-dir)通常是Anrdoid.mk的第一行,当一级的Android.mk的内容是:
include $(call all-subdir-makefiles)
那么,进入子目录的编译,通过ndk-build编译,my-dir的返回结果还是一级目录的Android.mk的路径,所以在子目录的Android.mk里面,我直接采用当前目录的相对目录的写法才解决了问题。
LOCAL_SRC_FILES := $(LOCAL_PATH)sdk/$(TARGET_ARCH_ABI)/libdeflicker.so
修改为:
LOCAL_SRC_FILES := sdk/$(TARGET_ARCH_ABI)/libdeflicker.so
网友评论