【问题标题】:ERROR: make.exe:***No rule to make target错误:make.exe:***没有规则来制作目标
【发布时间】:2014-10-18 10:54:54
【问题描述】:

我是 Android Programmin 和 Eclipse 的初学者。我正在使用 Eclipse Luna (4.4 版本)。我在 Eclipse 中导入了“OpenCV - 人脸检测”项目,但是当我尝试构建它时,Eclipse 给了我这个错误:

描述:make.exe: *** 没有规则来制作目标`../../sdk/native/jni/OpenCV.mk'。停止。 资源:OpenCV 示例 - 人脸检测 类型:C/C++问题

我认为导致此错误的文件是 Android.mk,包含在 jni 目录中,这是它的代码:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

#OPENCV_CAMERA_MODULES:=off
#OPENCV_INSTALL_MODULES:=off
#OPENCV_LIB_TYPE:=SHARED
include ../../sdk/native/jni/OpenCV.mk

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

LOCAL_MODULE     := detection_based_tracker

include $(BUILD_SHARED_LIBRARY)

上一个文件的第 8 行:

include ../../sdk/native/jni/OpenCV.mk

Eclipse 向我报告此警告:

描述:make: ../../sdk/native/jni/OpenCV.mk: 没有这样的文件或目录 资源:Android.mk 路径:/OpenCV 示例 - 人脸检测/jni 地点:8号线 类型:C/C++问题

有人可以帮助我吗?对不起我的英语XD

【问题讨论】:

    标签: java android eclipse opencv


    【解决方案1】:

    OpenCV 示例配置为使用 SDK 包内的相对路径,因此在将项目导入工作区时不应使用“复制项目到工作区”选项。

    在您的情况下,您需要将 Android.mk 文件中的相对路径“../../sdk/native/jni/OpenCV.mk”替换为完整的绝对路径。

    另外,您可能忘记定义 NDKROOT 环境变量?

    按照本教程正确导入并定义原生开发的所有环境变量:

    http://docs.opencv.org/trunk/doc/tutorials/introduction/android_binary_package/android_dev_intro.html#building-application-native-part-from-eclipse-cdt-builder

    另一个教程:转到以下文档的 Native/C++ 部分,并确保所有变量都为原生开发正确设置:

    http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html#native-c

    【讨论】:

    • OpenCV.mk 的路径错误。我在 C/C++ 构建环境中定义了 NDKROOT,但现在我有 5 个由死代码和可弃用代码引起的警告,这 2 个警告:1)说明:无效项目path: 找不到包含路径 (C:\Users\Salvatore\sdk\native\jni\include) - Resource OpenCV Sample - face-detection - Location: pathentry - Type: Path Entry 问题2) 说明:无效的项目路径:包含路径未找到(C:\Users\Salvatore\workspace\android-ndk-r10b\sources\cxx-stl\gnu-libstdc++\include) - 资源 OpenCV 示例 - 面部检测 - 位置:路径入口 - 类型:路径入口问题跨度>
    • 首先:验证两条路径是否存在。第二:如果您使用的是 Windows+Eclipse,请尝试将 opencv jni 库的 Path 和 Symbols include 中的反斜杠“\”更改为斜杠“/”。示例:错误 --> C:\Users\Salvatore\sdk\native\jni\include 正确 --> C:/Users/Salvatore/sdk/native/jni/include
    【解决方案2】:

    我知道这是一个老问题,但如果它有帮助的话:

    在我的情况下,我必须替换相对路径 Android.mk 文件中的“../../sdk/native/jni/OpenCV.mk” 绝对路径。

    【讨论】:

      【解决方案3】:

      可以使用相对路径。就我而言,我发现不同的操作系统可能会以不同的方式解析路径字符串。

      尝试替换:

      ../../sdk/native/jni/OpenCV.mk
      

      ..\..\sdk\native\jni\OpenCV.mk
      

      / 在我的 Mac OS 上工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-15
        • 2010-10-24
        • 1970-01-01
        • 2014-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多