問題タブ [graalvm-native-image]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
497 参照

visual-studio - GraalVM ネイティブ イメージの基本的なリンカー エラー

graalVM v20.0.0 CE を使用して、Hello World のシンプルなネイティブ イメージを作成しようとしています。

最初は「ネイティブ ツールチェーン」エラーが発生していましたが、「VS2017 の x86 ネイティブ ツール コマンド プロンプト」からコマンド ラインを起動したところ、そのハードルを超えました。

問題は、一連のリンカー エラーです。

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: 関数 jio_vfprintf で参照されている未解決の外部シンボル __imp_vfprintf

jvm.lib(JvmFuncs.obj): エラー LNK2019: 関数 jio_vsnprintf で参照されている未解決の外部シンボル __imp_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 未解決の外部

これらはすべて、関数呼び出しの最も基本的なprintf.

native-imageのコマンド ライン オプションを確認し、明示的に設定する--shared--static、そのトリックを実行することを望んでいましたが、ダイスはありませんでした。その他のネイティブ イメージ コマンド ライン オプションはどれも関連していないように見えました。

さらに、同じコマンド プロンプトの VS2015 バージョンから起動してみました。いいえ。

だから私は立ち往生しています。これは、graalvm のソースを取得して、それをクラックする以外に修正できるものですか?

0 投票する
1 に答える
928 参照

java - Maven を使用した単純な Graal ネイティブ サンプルのビルド

長い間、最終的に、この環境で VS 2017 の開発者コマンド プロンプトを使用して、コマンド ライン経由で Graal native を使用して単純な「HelloWorld」を作成することができました。

  • Graal VM: graalvm-ce-java11-19.3.2
  • Windows SDK : Windows SDK 10。

他のバージョンの graal ( graalvm-ce-java11-20.2.0-dev、graalvm-ce-java8-20.2.0-dev. .) で動作させることができません。おそらく、ローカル開発環境の特殊性のためです ( Windows 7 SDK を使用できない、たとえば ..)

私の次の目標は、単純な実行可能ファイルを生成することですが、より複雑な依存関係があります。次の頂点の例

https://how-to.vertx.io/graal-native-image-howto/

理想的には、maven プラグインを使用して生成することを意図しています。それが不可能な場合は、代わりにファット jar を作成してからネイティブに変換します。

1.native-image-maven-plugin の使用

エラー: プロジェクト demo01GraalTestClasses で目標 org.graalvm.nativeimage:native-image-maven-plugin:19.3.2:native-image (デフォルト) を実行できませんでした: Java 11+ でネイティブ イメージを使用せずにイメージをビルドするには、MAVEN_OPTS='-- が必要ですadd-exports=java.base/jdk.internal.module=ALL-UNNAMED' -> [ヘルプ 1] [エラー]

2. ファット jar を作成した後、コマンド ラインで

何か案が ???ありがとう!