繁体   English   中英

Visual C ++错误:LNK2019,LNK2028和LNK1120

[英]Visual C++ Error: LNK2019, LNK2028 and LNK1120

我正在使用一个基本应用程序来创建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   

有什么帮助吗?

看来您没有链接jvm.lib 通常,您可以在%ProgramFiles%\\Java\\jdk1.X.XX_XX\\lib找到它,然后可以将其添加到链接器输入设置中。

另外,您需要在运行时加载jvm.dll (并将其添加到延迟加载的dll中)。 在Windows上,您可以从注册表中获取当前位置。 查询SOFTWARE\\JavaSoft\\Java Runtime Environment\\CurrentVersion以获取当前运行时版本,并查询SOFTWARE\\JavaSoft\\Java Runtime Environment\\<version>\\RuntimeLib以获取jvm.dll的路径。

使用这些路径,您还可以检查系统上是否存在所需的运行时版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM