jni.h:没有这样的文件或目录

我在Windows中使用Code :: Blocks。

我创建了一个dll项目,试图获得一些JNI实践。

我认为这与classpath有关,但我不知道它是什么!可能是我必须更改Code :: Blocks的设置

有人可以帮我解决这个问题吗?非常感谢

/* DO NOT EDIT THIS FILE - it is machine generated */

#include <jni.h>

/* Header for class Vector3D */

#ifndef _Included_Vector3D

#define _Included_Vector3D

#ifdef __cplusplus

extern "C" {

#endif

/*

* Class: Vector3D

* Method: magnitude

* Signature: ()D

*/

JNIEXPORT jdouble JNICALL Java_Vector3D_magnitude

(JNIEnv *, jobject);

/*

* Class: Vector3D

* Method: mult

* Signature: (LVector3D;I)LVector3D;

*/

JNIEXPORT jobject JNICALL Java_Vector3D_mult

(JNIEnv *, jobject, jobject, jint);

/*

* Class: Vector3D

* Method: equals

* Signature: (LVector3D;)Z

*/

JNIEXPORT jboolean JNICALL Java_Vector3D_equals

(JNIEnv *, jobject, jobject);

/*

* Class: Vector3D

* Method: dotProduct

* Signature: (LVector3D;LVector3D;)D

*/

JNIEXPORT jdouble JNICALL Java_Vector3D_dotProduct

(JNIEnv *, jclass, jobject, jobject);

/*

* Class: Vector3D

* Method: makeNormalized

* Signature: (LVector3D;)LVector3D;

*/

JNIEXPORT jobject JNICALL Java_Vector3D_makeNormalized

(JNIEnv *, jclass, jobject);

/*

* Class: Vector3D

* Method: crossProduct

* Signature: (LVector3D;LVector3D;)LVector3D;

*/

JNIEXPORT jobject JNICALL Java_Vector3D_crossProduct

(JNIEnv *, jclass, jobject, jobject);

#ifdef __cplusplus

}

#endif

#endif

所以我做了设置->编译器和调试器->搜索目录->并在编译器下添加了“ $(JAVA_HOME)\ include”和“ $(JAVA_HOME)\

include \ win32”,它能够找到它!

回答:

您必须将JDK路径添加到包含路径,以便编译器知道文件的位置。

视窗:

/I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32"

Linux:

-I"${JAVA_HOME}/include" -I"${JAVA_HOME}/include/linux"

苹果电脑:

-I"${JAVA_HOME}/include" -I"${JAVA_HOME}/include/darwin"

以上是 jni.h:没有这样的文件或目录 的全部内容, 来源链接: utcz.com/qa/426856.html

回到顶部