我在Android开发中使用JNI。我想知道编译器在哪里找到引用的.h文件?
在jni/jni_part.cpp
中,它包含了许多.h文件。 Opencv相关文件由SDK定义,但“cartoon.h”肯定是项目指定的标题。但我在项目文件夹中找不到它。那么eclipse在每次运行时都会编译JNI c ++代码吗?如果是这样,eclipse会在哪些目录中找到这些标题?
也许这是JNI的基础,但我不熟悉它。因此,PLZ用一两句话帮助我。或者你可以在Android中粘贴一个简单的JNI教程,eclipse。
#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" {
.....
这是我的eclipse项目文件夹结构
/project
/jni
jni_part.cpp
/src
something.java
答案 0 :(得分:2)
你需要开始使用android-ndk将.c,.cpp文件编译成.so库对象,然后你可以在android项目中使用它。
请参阅Android NDK开始使用。 http://developer.android.com/tools/sdk/ndk/index.html#GetStarted
您可以在NDK下载中找到示例。
答案 1 :(得分:0)
如果Eclipse“知道”磁盘上cartoon.h
文件的位置,它会帮助您找到它 - 将光标放在#include
行上并按 F3 。
关于您的另一个问题:只有相关文件(来源,标题或mk)发生变化时,Eclipse才会编译。