1

我正在尝试使用 graalVM v20.0.0 CE 创建一个简单的 hello world 本地映像。

最初我遇到“本机工具链”错误,但是从“x86 Native Tools Command Prompt for VS2017”启动命令行后,我克服了这个障碍。

现在的问题是一串链接器错误:

java.lib(jni_util.obj):错误 LNK2019:函数 JNU_PrintString 中引用的未解析的外部符号 __imp_fprintf

java.lib(jni_util.obj):错误 LNK2019:函数 JNU_PrintString 中引用的未解析的外部符号 __imp___iob_func

net.lib(net_util_md.obj):错误 LNK2019:函数 NET_ThrowNew 中引用的未解析的外部符号 __imp_sprintf

net.lib(net_util_md.obj):错误 LNK2019:函数 dumpAddr 中引用的未解析的外部符号 __imp_printf

jvm.lib(JvmFuncs.obj):错误 LNK2019:未解析的外部符号 __imp_vfprintf 在函数 jio_vfprintf 中引用

jvm.lib(JvmFuncs.obj):错误 LNK2019:未解析的外部符号 __imp_vsnprintf 在函数 jio_vsnprintf 中引用

MSVCRT.lib(vsnprintf.obj):错误 LNK2001:无法解析的外部符号 __imp_vsnprintf

MSVCRT.lib(vsnprintf.obj):错误 LNK2001:无法解析的外部符号 __imp__vsnprintf

D:\Tools\graalvm-ce-java8-20.0.0\bin\helloworld.exe : 致命错误 LNK1120: 7 unresolved externals

这些似乎都与最基本的函数调用直接相关,printf.

我查看了native-image的命令行选项,并希望明确设置--shared--static会做的伎俩,但没有骰子。其他本机映像命令行选项看起来都不相关。

我进一步尝试从同一命令提示符的 VS2015 版本开始。没有。

所以我被困住了。这是我可以在获取 graalvm 的源代码并对其进行破解之外解决的问题吗?

4

1 回答 1

1

我从 GraalVM 的 Java 8 版本切换到他们的 Java 11 版本,gu install native-image现在我helloworld从前面提到的 VS2017 命令提示符完成转换为本机映像就好了。

于 2020-04-10T15:02:15.410 回答