以下是我使用构建 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帮助我找到我出错的地方,我该如何解决这个问题。
答案 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链接就足够了。