Я пытаюсь создать простой нативный образ hello world, используя graalVM v20.0.0 CE.
Изначально я получал ошибку "native toolchain", но запустил командную строку из "x86". Командная строка Native Tools для VS2017 ", я преодолел это препятствие.
Теперь проблема заключается в строке ошибок компоновщика:
java .lib (jni_util.obj) : ошибка LNK2019: неразрешенный внешний символ __imp_fprintf, на который ссылается функция JNU_PrintString
java .lib (jni_util.obj): ошибка LNK2019: неразрешенный внешний символ __imp ___ iob_fun c на 1010
ссылка на функцию JNU_R 1041 * .lib (net_util_md.obj): ошибка LNK2019: неразрешенный внешний символ __imp_sprintf, на который ссылается функция NET_ThrowNew
net .lib (net_util_md.obj): ошибка LNK2019: неразрешенный внешний символ __imp_printd ссылка на ссылку 1014 *
jvm.lib (JvmFuncs.obj): ошибка LNK2019: неразрешенный внешний символ __imp_vfprintf, на который ссылается функция jio_vfprintf
jvm.lib (JvmFuncs.obj): ошибка LNK2019: неразрешенный внешний символ __imp_vsnprintf, на который ссылается функция jio_vsnprintf
MSVCRT.lib (vsnprintf.obj): ошибка LNK2001: неразрешенный внешний символ 10 * nf * *
MSVCRT.lib (vsnprintf.obj): ошибка LNK2001: неразрешенный внешний символ __imp__vsnprintf
D: \ Tools \ graalvm-ce-java8-20.0.0 \ bin \ helloworld.exe: фатальная ошибка LNK1120: 7 неразрешенные внешние данные
Все это, похоже, напрямую связано с большинством базовых c вызовов функций printf
.
. Я просмотрел параметры командной строки native-image
и надеялся, что явно указав --shared
или --static
, можно добиться цели, но без кубиков. Ни одна из других опций командной строки собственного изображения не выглядела уместной.
Я также попытался начать с версии той же командной строки VS2015. Нет.
Так что я застрял. Это что-то, что я могу исправить, не взяв источник graalvm и не взломав его?