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