2013-06-04 4 views
1

Android 개발에서 JNI를 사용하고 있습니다. 컴파일러가 참조 된 .h 파일을 어디에서 찾을 수 있는지 알고 싶습니다.Android JNI C++ 파일 컴파일

여기에 jni/jni_part.cpp에는 많은 .h 파일이 포함됩니다. Opencv 관련 파일은 SDK에 의해 정의되지만 "cartoon.h"는 프로젝트가 지정한 헤더 여야합니다. 하지만 프로젝트 폴더에서 찾을 수 없습니다. 그런 다음 일식을 실행할 때마다 JNI C++ 코드를 컴파일합니까? 그렇다면 디렉토리에서 이클립스가 이러한 헤더를 찾습니다.

어쩌면 JNI의 기본 사항 일 수도 있지만 익숙하지 않습니다. 그래서 한두 문장으로 plz 도와주세요. 또는 Android, Eclipse에서 JNI에 대한 간단한 자습서를 붙여 넣을 수도 있습니다.

#include <jni.h> 
#include <opencv2/core/core.hpp> 
#include <opencv2/imgproc/imgproc.hpp> 
#include <opencv2/features2d/features2d.hpp> 


#include "cartoon.h" 
#include "ImageUtils.h" // Handy functions for debugging OpenCV images, by Shervin Emami. 


using namespace std; 
using namespace cv; 

extern "C" { 

..... 

이 당신은 어떤 당신이 할 수있는하는 .so를 라이브러리 객체는이 .c를 컴파일 안드로이드 NDK를 사용하기 시작 .CPP 파일이 필요합니다 내 이클립스 프로젝트 폴더 구조

/project 
    /jni 
    jni_part.cpp 
    /src 
    something.java 

답변

2

입니다 그런 다음 안드로이드 프로젝트에서 사용하십시오.

시작하려면 Android NDK를 참조하십시오. http://developer.android.com/tools/sdk/ndk/index.html#GetStarted

NDK 다운로드에서 예제를 찾을 수 있습니다. 이클립스는 "알고있는"경우 cartoon.h 파일이 디스크에있는 경우

0

, 당신이 그것을 찾는 데 도움이됩니다 - 그 #include 줄에 커서를 놓고 F3를 누릅니다.

다른 질문에 대해서는 : 관련 파일 (소스, 헤더 또는 mk)이 변경된 경우에만 Eclipse가 컴파일됩니다.

+0

THX. 그러나 이클립스는 그것을 어떻게 알 수 있습니까? 어떤 디렉토리에서 검색합니까? 게다가, 이클립스는 모든 것을 오류로 표시한다. 그래서 이클립스가 적어도이 시점에서 어디 있는지 알고 있는지 확신 할 수 없다. – SolessChong

+0

죄송합니다. 귀하의 의견을 말씀 드렸습니다 ... Eclipse가 파일의 위치를 ​​알고 있다고 썼습니다. ** F3 **가'cartoon.h' 파일에서 작동하지 않는다면 정확히 무엇이 작동합니까? 빌드가 성공하면 ** jni/Android.mk ** 파일에서 실마리를 찾을 수 있습니다. –

+0

가난한 영어로 유감입니다. 나는 "directoris가 일식을 통해 헤더를 검색하는"단어를 업데이트했습니다. – SolessChong