没有规则使目标错误android ndk构建sqlite



我试图使用android NDK来构建sqlite,以使用sqlite3_create_function,但没有规则来产生目标错误。make: *** No rule to make target '/fts3-rank.c', needed by '.../obj/local/armeabi/objs/fts3-rank//fts3-rank.o'. Stop.此Android.mk文件基于此网站上的文件:http://www.roman10.net/how-to-compile-sqlite-for-android-using-ndk/

    #LOCAL_PATH is used to locate source files in the development tree.
    #the macro my-dir provided by the build system, indicates the path of the current   directory
    LOCAL_PATH := $(call my_dir)


    #####################################################################
    #            build sqlite3                                            #
    #####################################################################
    include $(CLEAR_VARS)
    LOCAL_C_INCLUDES := $(LOCAL_PATH)/sqlite-amalgamation-3071700
    LOCAL_MODULE := sqlite3
    LOCAL_SRC_FILES := $(LOCAL_PATH)/sqlite-amalgamation-3071700/sqlite3.c
    include $(BUILD_STATIC_LIBRARY)
    #include $(BUILD_SHARED_LIBRARY)


    #####################################################################
    #            build our code                    #
    #####################################################################
    include $(CLEAR_VARS)
    LOCAL_C_INCLUDES := $(LOCAL_PATH)/sqlite-amalgamation-3071700
    LOCAL_MODULE := fts3-rank
    LOCAL_SRC_FILES := fts3-rank.c
    LOCAL_STATIC_LIBRARIES := libsqlite3
    #LOCAL_SHARED_LIBRARIES:=libsqlite3
    LOCAL_LDLIBS := -llog -lm
    #include $(BUILD_SHARED_LIBRARY)
    include $(BUILD_EXECUTABLE)

可能存在此错误的不同原因。

  1. LOCAL_PATH值可能不正确,因此请检查LOCAL_PATH初始化。删除其中的任何多余空间。LOCAL_PATH := $(call my-dir)__

  2. 在调用任何jni函数之前,应该将jni库加载到内存中。按如下方式加载jni库。

    静态{

    System.loadLibrary("libmy-jni-module");
    

    }

您可以在so 上引用此讨论

我通过反复尝试以某种方式修复了它。这很奇怪。我想是因为我使用了两次LOCAL_PATH?

我终于用这个Android.mk 构建了它

#LOCAL_PATH is used to locate source files in the development tree.
#the macro my-dir provided by the build system, indicates the path of the current directory
LOCAL_PATH := $(call my-dir)


#####################################################################
#            build sqlite3                                          #
#####################################################################
include $(CLEAR_VARS)
LOCAL_C_INCLUDES := sqlite-amalgamation-3071700
LOCAL_MODULE := sqlite3
LOCAL_SRC_FILES := sqlite-amalgamation-3071700/sqlite3.c
include $(BUILD_STATIC_LIBRARY)
#include $(BUILD_SHARED_LIBRARY)


#####################################################################
#            build our code                    #
#####################################################################
include $(CLEAR_VARS)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/sqlite-amalgamation-3071700
LOCAL_MODULE := fts3-rank
LOCAL_SRC_FILES := fts3-rank.c
LOCAL_STATIC_LIBRARIES := libsqlite3
#LOCAL_SHARED_LIBRARIES:=libsqlite3
LOCAL_LDLIBS := -llog -lm
include $(BUILD_SHARED_LIBRARY)
#need main function to have executable
#include $(BUILD_EXECUTABLE)

最新更新