在这个例子中,Rust 程序将输入数字简单地增加了三倍并返回结果。 首先将 WebAssembly 工具安装到 Rust 编译器。

# Install Rust$ sudo apt-get update$ sudo apt-get -y upgrade$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh$ source $HOME/.cargo/env
# Install WebAssembly tools$ rustup target add wasm32-wasi$ rustup override set nightly$ rustup target add wasm32-wasi --toolchain nightly

接下来,创建一个新的 cargo 项目。

downloadWebAssembly入门课由于这个程序是从主机应用程序调用的,而不是作为独立的可执行文件运行,因此我们将创建一个 lib 项目。

$ cargo new --lib triple$ cd triple

编辑 Cargo.toml 文件以添加[lib]节。 它会告诉编译器在哪里可以找到库的源代码,以及如何生成字节码输出。

[lib]name = "triple_lib"path = "src/lib.rs"crate-type =["cdylib"]

下面是 Rust 程序 src/lib.rs 的内容. 实际上,你可以在这个库文件中定义多个外部函数,并且所有这些函数都可以通过 WebAssembly 在 JaveScript 主机上使用。

#[no_mangle]pub extern fn triple(x: i32) -> i32 {  return 3 * x;}

接下来你可以用下面的命令行编译 Rust 的源代码到WebAssembly的字节码中。

$ cargo +nightly build --target wasm32-wasi --release

WebAssembly 字节码文件是 target/wasm32-wasi/release/triple_lib.wasm


©著作权归作者所有:来自51CTO博客作者mb60464aad1848f的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 从网瘾少年逆袭拿到微软 、字节等offer(下)
  2. 从网瘾少年逆袭拿到微软 、字节等offer(上)
  3. 敖丙读者字节、滴滴面经(已拿offer)
  4. 厉害了!今日头条的"Zhang*"竟然在Top5刊发文了, 字节跳动在经济学
  5. Linux基础-21day-Linux系统LVM逻辑卷管理
  6. Python代码运行速度慢?这五种方法很管用
  7. 分区出现“属性0字节”情况下的文件找回办法
  8. 网络损伤仪如何使用高级过滤模式过滤带VLan的流量
  9. Linux基础-20day-linux磁盘分区(fdisk/parted)

随机推荐

  1. php的优势与缺点
  2. php怎么接入公众号
  3. php依赖注入的三种方式
  4. php如何获取上传文件大小
  5. php怎么换行输出
  6. php中定义常量的两种方法
  7. php怎么跟数据库连接
  8. 使用PHP多维数组重组方法,兼容API接口
  9. php 字符串替换方法
  10. php怎么给密码进行md5加密