rust - 如何在 Rust crate 中编译为 wasm 和二进制文件?

标签 rust webassembly

我正在为 Web 应用程序编写后端,并希望为客户端重用一些逻辑。我想使用 wasm 生成一个 Javascript 可以使用的库。假设逻辑在 lib.rs 中。我应该怎么做,以便:

  1. 后端可以正常导入和使用 lib.rs 中的代码,cargo build 也可以按预期生成二进制文件。
  2. Rust 为 lib.rs 生成一个 wasm 库

我尝试将这些添加到我的 cargo 文件中(通过以下方式:Rust package with both a library and a binary?):

[lib]
crate-type = ["cdylib", "rlib"]

[[bin]]
name = "mybin"
path = "src/main.rs"

但似乎 cargo 正在为浏览器构建我的二进制文件,所以它缺少所有 sys crate。

最佳答案

您可以使用 --lib 选项要求只构建您的库。

cargo build --lib --target wasm32-unknown-unknown

关于rust - 如何在 Rust crate 中编译为 wasm 和二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70052198/

相关文章:

rust - 发生移动是因为 `*arg` 的类型为 `String` ,该类型未实现 `Copy` 特征

c++ - Rust 迭代器和 C++ 迭代器之间的主要区别是什么?

rust - 如何定时查询子进程状态

assembly - 将ffmpeg中的x86 asm和inline-asm编译成WebAssembly的问题

asp.net-core - 如何更改 Blazor WASM 身份网络核心 3.1 消息 "You are logged out"、 "checking login state"和 "authorizing"?

rust - 如何使用 Serde 序列化具有顶级键的结构?

rust - headless SDL 事件处理

ubuntu - 尝试在 Ubuntu 16.04 上构建 emsdk 时出错

node.js - 如何从 node.js 使用 WebAssembly?

webassembly - WebAssembly 中如何计算类型 "i32"的值?