调用Rust编译为Emscripten会产生错误Module.dynCall_ii不是函数

时间:2016-11-19 10:21:28

标签: javascript rust emscripten asm.js webassembly

我正在关注call from JavaScript教程。我没有使用节点,而是直接从网络浏览器调用:

程序hello_world / index.html中

<!DOCTYPE html>
<html lang="en">
  <head></head>
  <body>

    <script src="hello_world.js"></script>

    <script type='text/javascript'>
      var hello_world = cwrap('hello_world', 'number', []);
      var result = hello_world();
      console.log("result: ", result);
    </script>

  </body>
</html>

程序hello_world / SRC / main.rs

#![feature(link_args)]

#[link_args = "-s EXPORTED_FUNCTIONS=['_hello_world']"]
extern {}

#[no_mangle]
pub fn hello_world() -> isize {
    println!("Hello World!");

    41 + 1
}

fn main() {
    // Intentionally left blank
}

命令:

cargo build --target asmjs-unknown-emscripten

Safari中的错误消息:

  

TypeError:Module [“dynCall_ii”]不是函数。 (在   'module“dynCall_ii”','Module [“dynCall_ii”]'未定义)

每晚Firefox中的错误消息:

  

TypeError:Module.dynCall_ii不是函数Learn More

如果我只是打印功能:

var hello_world = cwrap('hello_world', 'number', []);
console.log("function: ", hello_world);

我得到(在Firefox Nightly上):

  

function:function asm._hello_world()

0 个答案:

没有答案