Я использую Code:: Blocks в окнах.
Я создал проект dll, пытаясь получить некоторую практику JNI.
В моем файле .h, сгенерированном javah, там #include jni.h, но когда я пытаюсь его скомпилировать, он продолжает говорить jni.h: нет такого файла или каталога.
Я думаю, что это имеет какое-то отношение к 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
EDIT:
Таким образом, я сделал Настройки → Компилятор и отладчик → Каталоги поиска → и добавил в компилятор "$ (JAVA_HOME)\include" и "$ (JAVA_HOME)\include\win32", и он смог его найти!