我想建立使用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/沒有規則,使目標錯誤android ndk構建sqlite
#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)
這很可能是通過匹配使規則圖案的組合和雙斜線的存在導致('... // fts3- rank.o');或者,'/ fts3-rank.c'可能缺少一個前綴(如果未定義「SRC」,'$(SRC)/ fts3-rank.c'就會變成'/ fts3-rank.c'。 – technomage
我只是越來越'make:***沒有規則制定目標'/fts3-rank.c','obj/local/armeabi/objs/fts3-rank/fts3-rank.o'需要。 Stop.'現在仍然無法弄清楚......我試着添加$(LOCAL_PATH)並將fts3-rank.c添加到sqlite合併中,但仍然沒有任何結果。 – John61590
使用'-d'運行'make'',然後查找包含'/ fts3-rank.c'的行。找到規則後,查看前面的輸出行以確定規則的定義位置;然後查看該makefile以查看原始規則,該規則應該明確哪些宏缺少定義。 – technomage