Android.mk中LOCAL_MODULE_CLASS对LOCAL_MODULE_PATH 的影响

2023-05-16

LOCAL_MODULE_CLASS用于制定LOCAL_MODULE_PATH的路径所在。
如果在Android.mk没有直接明确LOCAL_MODULE_PATH 的话,需要通过以下规则来自动生成base_rules.mk:
154 LOCAL_MODULE_PATH := $(strip $(LOCAL_MODULE_PATH))
155 ifeq ($(LOCAL_MODULE_PATH),)
156         #LOCAL_MODULE_CLASS :=
157   LOCAL_MODULE_PATH := $($(my_prefix)OUT$(partition_tag)_$(LOCAL_MODULE_CLASS))
158   $(info *******//$(LOCAL_MODULE_PATH))
159 ifeq ($(strip $(LOCAL_MODULE_PATH)),)
160     $(error $(LOCAL_PATH): unhandled LOCAL_MODULE_CLASS "$(LOCAL_MODULE_CLASS)")
161   endif
162 endif


在不同的Android.mk文件中,对于模块include()不同的编译类型选项,比如对于Library或者app,execut等在调用对应的处理mk文件时,会默认就指定当前的LOCAL_MODULE_CLASS的值,比如EXECUTABLES、SHARED_LIBRARIES等。所以在自己编写的Android.mk可不显示的指定LOCAL_MODULE_CLASS的值。
    但当遇到include $(BUILD_PREBUILT)的预编译选项时不会指定模块模块编译输出的类型CLASS,需要在自己编写的Android.mk中明确指定LOCAL_MODULE_CLASS的值如ETC/APP等,使其值为非空,从而帮助系统确定LOCAL_MODULE_PATH的路径,比如最终编译输出LOCAL_MODULE_PATH  := $(TARGRT_OUT_ETC)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android.mk中LOCAL_MODULE_CLASS对LOCAL_MODULE_PATH 的影响 的相关文章

随机推荐