gpt4 book ai didi

java - LLVM:无法让 vmjc 工作

转载 作者:行者123 更新时间:2023-12-02 09:39:54 25 4
gpt4 key购买 nike

我想使用 LLVM 将 Java 编译为 Javascript,如下所示:

  • *.java 到 *.class,通过 Oracle 的 javac
  • *.class 到 *.bc,通过 vmkit 的 vmjc
  • 使用 JS 将*.bc 转换为 *.html,通过 emscripten 的 emcc

创建的 HTML/JS 文件(约 170KB 大)打开时会在浏览器控制台中打印 ReferenceError: _StartJnjvmWithoutJIT is not Define。尝试调试它时,我注意到 *.bc 文件(LLVM IR)甚至似乎不包含我的代码,即我正在打印的字符串不在里面。

我做了什么:

vmjc -disable-opt -main=MyTest MyTest.class

无论我使用 Java 6 还是 7,它都会打印出来:

WARNING: Class file 'java/lang/VMString' requires Java version 1.7. This JVM only supports Java versions up to 1.6.

无论如何,它都会创建一个 *.bc 文件。当我将其转换为非二进制 (*.ll) 时,我得到一个文件,我本希望在其中打印我的字符串,但它们没有出现。不过,像 MyTest_main 这样的字符串确实出现在那里:

llvm-dis MyTest.class.bc

那么,这种方法到底可行吗?关于 Java 版本的警告是什么意思?为什么我的“hello world”字符串没有出现在 *.ll 代码中,这是一个问题吗?

最佳答案

您可以通过使用 GWT 将 Java 直接编译为 JavaScript 来缩短路线。

关于java - LLVM:无法让 vmjc 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19902556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com