Android NDK:无法制定目标

我正在尝试使用NDK构build一个简单的Android应用程序。 这里是我的Android.mk的内容

LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_LDLIBS := -llog LOCAL_MODULE := myNDK LOCAL_SRC_FILES := native.c include $(BUILD_SHARED_LIBRARY) 

当我运行ndk-build时,我得到:

make: *没有规则来制作目标'/native.c', needed by '/Users/ivan/Documents/workspace/TestNDK/obj/local/armeabi/objs/myNDK/native.o' '/native.c', needed by的。 停止。

所以问题很明显,make是search根目录中的源文件,如果我将native.c复制到我的根文件夹,一切正常。

问题是:我应该在Android.mk中指定LOCAL_PATH到我工作的jni文件夹。

好的,我解决了我的问题,原因很奇怪:问题在第一行

'LOCAL_PATH:= $(call my-dir)____'

它最后有几个空格(我用'_'replace了它们)。 如果你删除它们,一切正常。

希望能帮助别人。

在使用android-ndk-r9 64位的Mac OS X上,从NDKpath中删除空格。 那修正了无规则为我做目标错误

不完全是OP的答案,但我想这可以使他人免于浪费时间。

另一个问题,我发现,导致这个错误是

 LOCAL_SRC_FILES := native.c 

 LOCAL_MODULE := native 

使用相同的名称。 我不知道为什么这会导致一个错误,因为代码应该生成在不同的位置native.o,native.od和本地。 但是,显然它确实如此。

当我试图编译hello.c到hello时,我发现了这一点。 一旦我把hello.c改成main.c,一切都编译好了。

如果在Android.mk文件中有任何语法错误,那么没有规则可能会导致目标错误。

我有同样的问题。