2014-09-10 5 views
2

У меня есть некоторые проблемы.Android.mk Нет правила для создания цели * * .c ', необходимой для' * .o '. Стоп

Я использую ndk-build, но я не могу создать библиотеку * .so.

--------------------------------- Ошибка ------------ ---------------------

[email protected] /work/workspace/HealthCare $ ndk-build 
make: *** No rule to make target `jni/jni/src/filterData.c', needed by 
`obj/local/armeabi/objs/HealthCare/jni/src/filterData.o'. Stop. 

Под источником мой Android.mk, помогите мне, пожалуйста

------- -------------------------- Android.mk --------------------- ------------

LOCAL_PATH   := $(call my-dir) 
SRCS    := $(wildcard $(LOCAL_PATH)/src/*.c) 

include $(CLEAR_VARS) 

LOCAL_MODULE  := HealthCare 
LOCAL_SRC_FILES  := $(SRCS) 

LOCAL_LDLIBS  := -llog 

include $(BUILD_SHARED_LIBRARY) 

ответ

6
LOCAL_SRC_FILES := $(SRCS:$(LOCAL_PATH)/%=%) 

ЭОД TED

LOCAL_C_INCLUDES := $(LOCAL_PATH)/src 
+0

wow ... спасибо! так полезно для меня, но как направить мой * .h? my jni directory 'Android.mk Application.mk inc src' и введите команду' $ ndk-build', а затем результат '[armeabi] Compile thumb: HealthCare <= filterData.c' ' jni/src/filterData .c: 3: 24: фатальная ошибка: filterData.h: нет такой компиляции файла или каталога. 'make: *** [obj/local/armeabi/objs/HealthCare/src/filterData.o] Ошибка 1' –

+1

Это легко. используйте LOCAL_C_INCLUDES. –

+2

Интересно, '$ (SRCS: $ (LOCAL_PATH) /% =%)' что значит ??? –

Смежные вопросы