2015-03-21 4 views
3

Я хочу использовать предварительно созданную общую библиотеку в AOSP. Библиотека определяется в Android.mk так:Использовать сборную общую библиотеку в Android AOSP

include $(CLEAR_VARS) 
LOCAL_MODULE := foo 
LOCAL_MODULE_SUFFIX := .so 
LOCAL_MODULE_CLASS := SHARED_LIBRARIES 
LOCAL_MODULE_TAG := optional 
LOCAL_MODULE_PATH := system/lib 
LOCAL_SRC_FILE := system/lib/foo.so 
include $(BUILD_PREBUILT) 

Во время сборки, папка out/target/product/mako/obj/SHARED_LIBRARIES/foo_intermediates/export_include была создана.

Однако сбой сборки с сообщением об ошибке, что out/target/product/mako/obj_arm/SHARED_LIBRARIES/foo_intermediates/export_include не может быть найден.

Обратите внимание на разницу между «obj» и «obj_arm». Что вызвало проблему?

ответ

3

Это двухцелевая сборка (рука и рука 64), поэтому есть две папки obj, одна для 32-битного плеча, а другая для 64-битного плеча.

мне нужно определить библиотеку следующим образом:

include $(CLEAR_VARS) 
LOCAL_MODULE := libfoo 
LOCAL_MODULE_SUFFIX :=.so 
LOCAL_MODULE_CLASS := SHARED_LIBRARIES 
LOCAL_MODULE_TAGS := optional 
LOCAL_PRELINK_MODULE := false 
ifdef TARGET_2ND_ARCH 
LOCAL_MULTILIB := both 
LOCAL_MODULE_PATH_64 := system/lib64 
LOCAL_SRC_FILES_64 := system/lib64/libfoo.so 
LOCAL_MODULE_PATH_32 := system/lib 
LOCAL_SRC_FILES_32 := system/lib/libfoo.so 
else 
LOCAL_MODULE_PATH := system/lib 
LOCAL_SRC_FILES := system/lib/libfoo.so 
endif 
include $(BUILD_PREBUILT) 
+1

Ok, но как вы решить эту проблему? – thiagolr

+0

Я обновил ответ, чтобы показать свое решение. – JustWonder

Смежные вопросы