【问题标题】:Android NDK, No rule to make targetAndroid NDK,没有制定目标的规则
【发布时间】:2012-07-19 22:20:05
【问题描述】:

我在其他地方看到过这个问题,但答案似乎不适用于我的情况。我有一个 .cpp 文件(不是 .c 文件)。我收到了错误:

make: * 没有规则来制作目标jni/native.c', needed byobj/local/armeabi/objs/native/native.o'。停止。 Cirapi_android C/C++问题

这是我的 Android.mk 文件(非常简单):

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

我已经删除了解决其他问题的所有额外空格。它在抱怨 native.c,我什至没有在我的 makefile 中列出它。有什么想法吗?

我使用的是 MacOSX Snow Leopard、Eclipse Juno、NDK r8

【问题讨论】:

  • 你在native.cpp里面有extern "C"{}吗?
  • 是的,我愿意。 cpp 文件在 Eclipse 中编译得很好。我想知道是否存在路径或权限问题。我必须为 Eclipse 指定绝对路径才能找到 jni.h 头文件。

标签: android java-native-interface android-ndk


【解决方案1】:

让它工作...不确定密钥是什么...将makefile更改为..

TOP_LOCAL_PATH:=$(call my-dir)
include $(call all-subdir-makefiles)
LOCAL_PATH := $(TOP_LOCAL_PATH)  

include $(CLEAR_VARS)
LOCAL_LDLIBS:=-llog
LOCAL_MODULE:=native
LOCAL_SRC_FILES:=native.cpp

include $(BUILD_SHARED_LIBRARY)

...还从 obj 目录中删除了 .o 文件...怀疑清理工作不正常。

【讨论】:

  • 删除 obj 目录中的所有文件对我有用。谢谢!
  • 如何进入obj目录?
  • 9 年后,删除 obj 目录为我节省了数小时的工作时间。谢谢!
猜你喜欢
  • 2011-09-08
  • 2011-06-02
  • 2014-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-02
  • 1970-01-01
相关资源
最近更新 更多