2013-02-13 3 views
0

OpenCV (2.4.3.2)를 내 프로젝트에 정적으로 연결하고 싶습니다.정적 연결 OpenCV 2.4.3.2

Android NDK: ERROR:/Users/jamiematthews/Documents/workspace/AuthentiGuard/jni/Android.mk:on: LOCAL_SRC_FILES points to a missing file  
/Users/jamiematthews/Documents/android-ndk-r8d/build/core/prebuilt-library.mk:43: *** Android NDK: Aborting . Stop. 
Android NDK: Check that /Users/jamiematthews/Documents/Android-Projects/OpenCV-2.4.3-android-sdk/sdk/native/jni/../libs/mips/libon.so exists or that its path is correct 

누구든지 의미 할 수 무엇을 "누락 된 파일 LOCAL_SRC_FILES 점을"알고 : 지금 내 Android.mk는 오류를 발생이

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 
OPENCV_CAMERA_MODULES:=on 
OPENCV_INSTALL_MODULES:=on 

include /Users/jamiematthews/Documents/Android-Projects/OpenCV-2.4.3-android-sdk/sdk/native/jni/OpenCV.mk 

LOCAL_MODULE := jni_part 
LOCAL_SRC_FILES := jni_part.cpp 
LOCAL_LDLIBS += -llog -ldl 
LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog 
include $(BUILD_SHARED_LIBRARY) 

처럼 보인다?

나는 줄

OPENCV_CAMERA_MODULES:=on 
OPENCV_INSTALL_MODULES:=on 

이 잘 컴파일을 제거 PS 경우,하지만 나는 정적

답변

1

해결책을 찾았습니다. 믿거 나 말거나, 안드로이드.mk가 아닌 Application.mk의 문제였습니다. 나는 이전

APP_ABI := all 

을 설정하고 심지어 정적이의 빌드 프로세스에 영향을 수 있다고 생각하지 않았다. 결국 변경되었습니다.

APP_ABI := armeabi-v7a 

이제 모든 것이 정상적으로 작동합니다. 내가 OPENCV_CAMERA_MODULES : = on을 필요로하지 않았다는 것에주의하십시오, 나는 당신이 JNI에서 카메라를 호출 할 때만, 나는 그렇지 않다는 것을 믿습니다.

+0

내 application.mk와 android.mk는 너와 같지만 여전히 Android 용 앱을 실행하기 위해 opencvmanager를 다운로드해야하지만이 솔루션은 작동하지 않습니다. – ARG

0

LOCAL_SRC_FILES 귀하의 네이티브 코드가있는 파일을 보여줍니다 링크 캔트. 네이티브 OpenCV 코드를 사용한다면 여기에 cpp 파일의 이름을 추가해야합니다. 네이티브 파트가 없다면 프로젝트의 libs 폴더에 OpenCV 라이브러리를 추가해야합니다. (정적 초기화의 경우). 자세한 내용은 this page을 확인하십시오.

+0

맞습니다. 저는 원시 opencv를 사용합니다. 파일. 내가 말했듯이, 맨 위의 두 줄을 제거하면 컴파일되고 실행됩니다 (JNI 파일 호출 포함) – Jameo

+0

이제 동적 링크로 프로그램을 실행할 수 있지만 정적으로는 실행할 수 없습니다. 링크를 클릭하고 실행하십시오. 정적 연결의 경우 Android.mk에 OPENCV_LIB_TYPE : = STATIC을 설정해야합니다. – rics

+0

나는 그 자체로, 나는 여전히 동일한 오류를 얻는다. (즉, 맨 위에있는 포함 사이에 그것을 추가한다. 나는 또한 다른 두 가지와 함께, 전후에, 그래서 그것의 순서 물건을 생각하지 않는다 – Jameo