Я пытаюсь построить sqlite с помощью андроида NDK, чтобы использовать sqlite3_create_function, но я не получаю No rule, чтобы сделать ошибку цели. 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 build 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)/fts3-rank.c' превратится в '/ fts3-rank.c', если' SRC' не определен). – technomage
Я просто получаю 'make: *** No rule to make target '/fts3-rank.c', необходимый для 'obj/local/armeabi/objs/fts3-rank/fts3-rank.o'. Stop.' сейчас и все еще не могу понять это ... Я попытался добавить $ (LOCAL_PATH) и добавить fts3-rank.c к объединению sqlite и все равно ничего. – John61590
Запустите 'make' 'с' '-d' ', затем найдите строки, содержащие' '/ fts3-rank.c''. Когда вы найдете правило, посмотрите на предыдущие строки вывода, чтобы определить, где определено правило; затем посмотрите в этом make-файле, чтобы увидеть исходное правило, которое должно сделать очевидным, что макрос не имеет определения. – technomage