0

以下是我使用构建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 库链接到我的源文件。

请帮我找出我哪里出错了,我该如何解决这个问题。

4

2 回答 2

1

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

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

最后,确保 SQLite3 对象位于目标文件夹中。YOURANDROIDROOT/out/target/PRODUCTNAME/system/symbols...

于 2013-09-13T05:23:21.970 回答
1

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

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

所以与 libsqlite 链接应该就足够了。

于 2013-10-05T09:27:13.533 回答