我正在构建一个必须使用Java库的应用程序,但需要生成一个CLR DLL,因此我正在使用JNI。
DLL编译为32位,但会产生64的链接器错误: 错误LNK2001:未解析的外部符号“extern”C“long __cdecl JNI_CreateJavaVM(struct JavaVM_ * *,void * *,void *)”(?JNI_CreateJavaVM @@ $$ J0YAJPEAPEAUJavaVM _ @@ PEAPEAXPEAX @ Z)
我认为问题在于jvm.lib,因为在库路径中没有它会产生32位的相同错误。 jvm.lib架构是否具体?我看到有人遇到了相反的问题(编译为64,得到类似的错误32)并且他通过安装32位JDK解决了这个问题。但是,尝试在我的32位计算机上安装64位JDK会导致“无效的win32应用程序”错误。
任何想法如何编译?