2

我有一个非常简单的测试项目。基本上是 jni 下的一个原生 c 文件(jni 位于项目的根目录下,与 'src' 'res' 等在同一目录中)。make 文件基本上是最简单的:

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

错误信息是:make: * No rule to make target`'/native.c'。需要... 显然 ndk-build 试图在根目录下查找文件。如果我将文件复制到根目录“/”,或者如果我在 make 文件中指定了“native.c”的完整路径,那么一切正常。

我还尝试通过 $(warning, '$(LOCAL_PATH)') 输出 $LOCAL_PATH 并发现没有问题。

4

1 回答 1

1

使用以下内容创建 Android.mk:

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

放入native.c您的 Android.mk 所在的同一文件夹中。

ndk-build

您将获得如下输出:

D:\12314\jni>ndk-build
"Compile thumb : native <= native.c
SharedLibrary  : libnative.so
Install        : libnative.so => libs/armeabi/libnative.so
于 2012-09-22T19:47:55.293 回答