AOSP构建:使文件共享库出现问题

时间:2013-09-11 13:01:52

标签: android compiler-errors android-source

以下是我使用构建 AOSP

编译的来源的 MAKE 文件
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES:= abc.c

LOCAL_MODULE:= abc

LOCAL_FORCE_STATIC_EXECUTABLE := true

LOCAL_STATIC_LIBRARIES := libc

LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
LOCAL_MODULE_TAGS := debug

LOCAL_C_INCLUDES += \
        $(LOCAL_PATH)/../../../external/sqlite/dist \
        $(LOCAL_PATH)/../../../external/sqlite/android 

LOCAL_SHARED_LIBRARIES := \
        libsqlite \
 libsqlite3_android

include $(BUILD_EXECUTABLE)

这里,在源abc.c中我正在尝试使用sqlite3.h中声明的函数。当我试图构建android源时,它返回错误

no rule libsqlite3_android.so  to make target abc.so

我想将sqlite库链接到我的源文件。

Plz帮助我找到我出错的地方,我该如何解决这个问题。

2 个答案:

答案 0 :(得分:1)

首先,确保您之前已经构建了SQLite3。 (您应该在添加任何新内容或自定义任何代码之前构建整个项目)

其次,确保在构建SQLite3时构建相同的目标产品。 (确保在“午餐”时选择了正确的菜单。)

最后,确保SQLite3对象位于目标文件夹中。 YOURANDROIDROOT输入/输出/目标/ PRODUCTNAME /系统/符号...

答案 1 :(得分:1)

实际上,您不必与libsqlite3_android库链接。

根据AOSP libsqlite makefile(external/sqlite/android/Android.mk),libsqlite3_android是一个STATIC库,它包含在libsqlite动态库(external/sqlite/dist/Android.mk)中。

因此,与libsqlite链接就足够了。