2013-09-24 94 views
0

我有這樣一個unresolved external symbol [email protected] referenced我在哪裏可以找到jni.lib

了同樣的問題,但在$ JAVA_HOME \ lib中周圍沒有jni.lib文件。 我無法在任何地方找到jni.lib,我可以在哪裏找到它?

#include <iostream> 
#include <jni.h> 
using std::cerr; 
int jvmtest(){ 
    JNIEnv *env; 
    JavaVM *jvm; 
    JavaVMInitArgs vm_args; 
    JavaVMOption options[1]; 
    options[0].optionString = 
     "-Djava.class.path=H:\\source"; 
    vm_args.version = JNI_VERSION_1_6; 
    vm_args.nOptions = 1; 
    vm_args.ignoreUnrecognized=0; 
    jint res = JNI_CreateJavaVM(&jvm,(void **)&env,&vm_args); 
    if(res <0) 
    {//do something 
    } 
    jvm->DestroyJavaVM(); 
    return 0; 
    } 

和在VS2010,

庫目錄是C:\ JDK \ lib中; $(LibraryPath)

包括路徑爲C:\ JDK \包括\ WIN32; C: \ jdk \ include; $(IncludePath)

+0

那麼,你從哪裏得到你的JNI? –

+0

我已將我的C++源代碼添加到問題中。我正試圖從C++調用Java函數。 – ridox

+0

是的,但是你的JNI庫從哪裏來?你有一個jni.h文件夾嗎?那個是從哪裏來的。從那裏開始,看看../lib。 –

回答

0

嘗試jvm.dll。該文件可能位於​​或$JAVA_HOME/bin/server。 找到它並在您的LIBRARY附加包含路徑。

+0

好了,我改變了加載jvm.dll的方式。通過調用像這樣的函數'HINSTANCE hVM = LoadLibrary(「C:\\ jdk \\ jre \\ bin \\ client \\ jvm.dll」);',鏈接錯誤消失了。答案在這裏[linke-error](http://www.codeproject.com/Questions/263687/Linker-error-undefined-reference-to-_imp__JNI_Crea) – ridox

相關問題