目标模式不包含'%'

时间:2014-10-04 14:02:35

标签: android opencv android-ndk

我尝试构建ndk并获取错误

/android-ndk-r9/build/core/prebuilt-library.mk:68: *** 目标模式不包含'%'。停止。****

我的Android.mk代码是:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

OPENCV_CAMERA_MODULES := on 
OPENCV_INSTALL_MODULES := on
#OPENCV_LIB_TYPE:=SHARED

include D:/Books/Java/winx86_01Jan12/OpenCV-2.4.9-android-sdk/sdk/native/jni/OpenCV.mk

LOCAL_SRC_FILES  := F_jni.cpp
LOCAL_C_INCLUDES += $(LOCAL_PATH)
LOCAL_LDLIBS     += -llog -ldl

LOCAL_MODULE     := f

include $(BUILD_SHARED_LIBRARY)

请帮助直到我解决我的问题。我真的很困惑。我尝试了几种方法,但我无法解决我的问题。

1 个答案:

答案 0 :(得分:1)

ndk-build调用make,它无法很好地处理目标中的字符。如果您的项目也位于磁盘D:上,那么您可以参考没有驱动器号的OpenCV,

include /Books/Java/winx86_01Jan12/OpenCV-2.4.9-android-sdk/sdk/native/jni/OpenCV.mk

否则你可以尝试

include //D/Books/Java/winx86_01Jan12/OpenCV-2.4.9-android-sdk/sdk/native/jni/OpenCV.mk
include //localhost/D$/Books/Java/winx86_01Jan12/OpenCV-2.4.9-android-sdk/sdk/native/jni/OpenCV.mk

如果没有任何帮助,请复制您的OpenCV SDK,以便您可以使用相对路径,例如

include ../../OpenCV-2.4.9-android-sdk/sdk/native/jni/OpenCV.mk

PS 你的麻烦来源可能是路径上某处的 cygwin 。自2011年11月起,NDK r7,ndk-build不需要 cygwin OpenCV 之后做出了往复步骤。不幸的是,许多开发人员仍需要 cygwin 进行日常工作;此外,直到最近,你还需要 cygwin 来运行 ndk-dgb (你现在有 ndk-gdb-py.cmd !)。所以我的建议是在运行 cygwin\bin 之前从PATH中删除ndk-build.cmd目录。如果使用Ecliplse / ADT构建本机代码,则可以在Project构建属性中轻松完成。