我正在尝试使用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)

最佳答案

可能是此错误有一些不同的原因。


LOCAL_PATH值可能不正确,因此请检查LOCAL_PATH初始化。删除其中多余的空格。
LOCAL_PATH := $(call my-dir)__
您的jni库应该在调用任何jni函数之前加载到内存中。如下加载jni库。

静态的 {

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


}


您可以参考this讨论

08-18 17:31
查看更多