問題タブ [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.
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 のソースを取得して、それをクラックする以外に修正できるものですか?
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 を作成した後、コマンド ラインで
何か案が ???ありがとう!