2014-10-18 39 views
2

我是Android Programmin和Eclipse的初學者。我正在使用Eclipse Luna(4.4版本)。我在Eclipse中導入了「OpenCV - face detection」項目,但是當我嘗試編譯它時,Eclipse給了我這個錯誤:錯誤:make.exe:***沒有規則制定目標

描述:make.exe:***沒有規則使target成爲`../ ../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的報告我這樣的警告:

說明:品牌:../../sdk/native/j NI/OpenCV.mk:沒有這樣的文件或目錄 資源:Android.mk 路徑:/ OpenCV的樣本 - 臉檢測/ JNI 地點:8號線 類型:C/C++問題

有人能幫助我嗎?我很抱歉我的英語XD

回答

3

OpenCV示例被配置爲使用SDK包內的相對路徑,因此在將項目導入工作區時不應使用「將項目複製到工作區」選項。

在你的情況下,你需要用Android的完整絕對路徑替換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

另一個教程:轉到部分本地/ C++以下文件,並確保所有的變量設置正確對本地發展:

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

+0

OpenCV.mk的路徑是錯誤的。我在C/C規定NDKROOT ++編譯envoirment,但現在我已經5警告的死代碼和deprecable代碼,這2警告造成的:1)說明:無效的項目路徑:包括未找到路徑(C:\ Users \用戶薩爾瓦託雷\ SDK \本地\ JNI \包括) - 資源OpenCV的樣本 - 臉檢測 - 位置:pathentry - 類型:路徑輸入問題2)說明:無效的項目路徑:包括未找到路徑(C:\用戶\薩爾瓦託雷\工作區\ Android的ndk- r10b \ sources \ cxx-stl \ gnu-libstdC++ \ include) - 資源OpenCV示例 - 面部檢測 - 位置:pathentry - 類型:路徑條目問題 – Salva 2014-10-19 10:55:24

+0

第一個: 驗證兩條路徑存在。 第二個: 如果您使用的是Windows + Eclipse,請嘗試更改反斜槓「\」以在路徑和符號中包含opencv jni庫中的「/」。 示例:錯誤 - > C:\ Users \ Salvatore \ sdk \ native \ jni \ include正確 - > C:/ Users/Salvatore/sdk/native/jni/include – Overclocker 2014-10-19 15:51:44

0

我知道這是一個老問題,但仍然是否有幫助:

In my case I had to replace the relative path "../../sdk/native/jni/OpenCV.mk" in the Android.mk file with full absolute path.

enter image description here

0

其確定使用相對路徑。就我而言,我發現不同的操作系統可能會以不同方式解析路徑字符串

嘗試更換:

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

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

/在我的Mac OS的作品。

相關問題