我正在关注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()