Я использую собственный интерфейс Java и пытаюсь сделать указатель среды JNIEnv (* env) глобальной переменной. Я использую Eclipse с G ++, и у меня есть следующие файлы:
CustomLibrary.hh
#ifndef CUSTOMLIBRARY_HH_
#define CUSTOMLIBRARY_HH_
#include <jni.h>
extern JNIEnv *env;
#endif /* CUSTOMLIBRARY_HH_
main.cpp:
#include <jni.h>
#include "CustomLibrary.hh"
int main()
{
//create java virtual machine
JavaVM *javaVM = nullptr;
JNIEnv *env = nullptr;
long flag = JNI_CreateJavaVM(&javaVM, (void**)&env, &vmArgs);
if (flag == JNI_ERR)
//call some other class method which uses the env global variable
myclass MYCLASS();
MYCLASS::doSomething();
}
myclass.cpp
#include "CustomLibrary.hh"
myclass::doSomething()
{
anotherFunction(env);
}
Однако всякий раз, когда я пытаюсь построить проект, я получаю следующую ошибку:
myclass.cpp: undefined reference to 'env'
Я не совсем уверен, в чем проблема.