【发布时间】:2013-01-04 05:44:57
【问题描述】:
我正在开发一个基本应用程序,以创建 Java VM 并使用 JNI 从 C++ 启动 Java 程序。但是,我有一些编译错误:
Error 6 error LNK2028: unresolved token (0A00000D) "extern "C" long __stdcall JNI_CreateJavaVM(struct JavaVM_ * *,void * *,void *)" (?JNI_CreateJavaVM@@$$J212YGJPAPAUJavaVM_@@PAPAXPAX@Z) referenced in function "public: bool __clrcall JarLauncher::launchJar(void)" (?launchJar@JarLauncher@@$$FQ$AAM_NXZ)
Error 5 error LNK2028: unresolved token (0A00000C) "extern "C" long __stdcall JNI_GetDefaultJavaVMInitArgs(void *)" (?JNI_GetDefaultJavaVMInitArgs@@$$J14YGJPAX@Z) referenced in function "public: bool __clrcall JarLauncher::launchJar(void)" (?launchJar@JarLauncher@@$$FQ$AAM_NXZ)
Error 7 error LNK2019: unresolved external symbol "extern "C" long __stdcall JNI_GetDefaultJavaVMInitArgs(void *)" (?JNI_GetDefaultJavaVMInitArgs@@$$J14YGJPAX@Z) referenced in function "public: bool __clrcall JarLauncher::launchJar(void)" (?launchJar@JarLauncher@@$$FQ$AAM_NXZ)
Error 8 error LNK2019: unresolved external symbol "extern "C" long __stdcall JNI_CreateJavaVM(struct JavaVM_ * *,void * *,void *)" (?JNI_CreateJavaVM@@$$J212YGJPAPAUJavaVM_@@PAPAXPAX@Z) referenced in function "public: bool __clrcall JarLauncher::launchJar(void)" (?launchJar@JarLauncher@@$$FQ$AAM_NXZ)
Error 9 error LNK1120: 4 unresolved externals
有什么帮助吗?
【问题讨论】:
-
这些是链接器错误,而不是编译器错误。它告诉您您缺少一些符号。您要么需要提供实现,要么为库获取它们。
-
看来您确实忘记链接这两个函数所在的库。
-
JDK 提供了两个附加到链接器的.lib 文件。我附上了 jvm.lib 和jawt.lib(尽管我可能不需要后者)
标签: java c++ visual-c++ java-native-interface lnk2019