2014-09-10 3 views
2

몇 가지 문제가 있습니다.Android.mk '* .o'에 필요한 '* .c'대상을 만드는 규칙이 없습니다. 그만하면

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)/%=%) 

EDI TED

LOCAL_C_INCLUDES := $(LOCAL_PATH)/src 
+0

와우 ... 감사합니다! 내게 도움이되었지만 내 * .h를 안내하는 방법? 내 jni 디렉토리'Android.mk Application.mk inc src' 그리고'$ ndk-build' 명령을 입력 한 후 결과를 '[armeabi] 컴파일 엄지 : 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)/% = %)'무슨 뜻입니까 ?? –