You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Wasmtime组件add示例运行失败:cargo run提示无可用bin目标

Wasmtime组件add示例运行报错解决:error: a bin target must be available for cargo run

问题重现

按照Wasmtime组件文档的WASI-0.2 add示例编写代码,执行cargo component build --release成功后,运行cargo run --release -- 1 2 ../add/target/wasm32-wasi/release/add.wasm时触发错误:

错误:必须有一个二进制目标才能执行cargo run

相关代码

lib.rs

#[allow(warnings)]
mod bindings;

use bindings::Guest;

struct Component;

impl Guest for Component {
    fn add(x: i32, y: i32) -> i32 {
        x + y
    }
}

bindings::export!(Component with_types_in bindings);

world.wit

package component:add;

/// An example world for the component to target.
world example {
    export add: func(x: s32, y: s32) -> s32;
}

使用版本:wasmtime-cli 21.0.1 (cedf9aa0f 2024-05-22)

问题原因

当前项目是库类型项目(通过cargo component new --lib初始化),cargo run命令仅用于运行项目中的二进制可执行目标(即src/main.rs对应的程序),但此示例未定义二进制入口,因此触发错误。文档中的第二步应使用wasmtime命令直接运行编译生成的Wasm组件,而非cargo run。

解决方法

执行以下命令运行组件:

wasmtime run ../add/target/wasm32-wasi/release/add.wasm -- 1 2

注意参数顺序:--用于分隔wasmtime的命令参数和传递给Wasm组件的输入参数,确保1和2能被组件正确接收。

若一定要使用cargo run,需在项目中添加src/main.rs作为二进制入口,编写调用组件逻辑的代码,但这不符合该示例的原始设计意图。

内容的提问来源于stack exchange,提问作者Joshua Aruokhai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 15:29:56