不灭的焱

革命尚未成功,同志仍须努力 下载Java21

作者:AlbertWen  添加时间:2026-07-09 17:47:01  修改时间:2026-07-15 02:31:31  分类:01.Rust编程  编辑

目录

你的报错核心原因是:VS Code 现在用的是 rustc main.rs 直接编译,而不是 cargo run

日志里很明显:

rustc main.rs

直接用 rustc 编译时,如果没有指定 edition,会按旧的 Rust 2015 处理;而 async fn 需要 Rust 2018 或更高版本。Cargo 官方文档也说明,Cargo.toml 里的 edition 会决定包的 Rust Edition;如果没写 edition,则会为了兼容性默认按 2015 处理。(Rust 文档)

推荐修复方式:用 Cargo 运行

你应该在包含 Cargo.toml 的项目根目录执行:

cargo run

不要在 src/ 目录里直接执行 rustc main.rs

你的项目应该类似这样:

01.Workbench-Backend/
├── Cargo.toml
└── src/
    └── main.rs

Cargo.toml 建议这样写:

[package]
name = "workbench-backend"
version = "0.1.0"
edition = "2024"

[dependencies]
anyhow = "1"
tokio = { version = "1", features = ["full"] }

src/main.rs 示例:

use anyhow::Result;

#[tokio::main]
async fn main() -> Result<()> {
    println!("Hello Rust async main!");

    Ok(())
}

注意:Rust 的 async 代码通常需要运行时来执行,例如 Tokio。Rust 官方书也提到 async/await 语法需要配合 runtime 来执行异步函数。(Rust 文档)

VS Code 里怎么改

你现在大概率点的是 Run Code,也就是 Code Runner 插件,它会直接跑:

rustc main.rs

这不适合正式 Rust 项目。

建议这样做:

方式一:直接用 VS Code 终端

打开项目根目录:

cd /Users/albertwen/www/projects/java/DevOps/Fuyo-AIOps/01.Fuyo-Workbench/01.Workbench-Backend
cargo run

方式二:改 Code Runner 配置

打开 VS Code 的 settings.json,加上:

{
  "code-runner.runInTerminal": true,
  "code-runner.executorMap": {
    "rust": "cargo run"
  }
}

然后重点是:VS Code 要打开项目根目录,也就是包含 Cargo.toml 的目录,不要只打开 src 目录。

临时修复方式:继续用 rustc

如果你只是单文件测试,可以这样:

rustc --edition=2024 main.rs
./main

但是这个方式不推荐,因为你用了:

use anyhow::Result;

以及可能用了:

#[tokio::main]

这些都属于外部 crate,直接 rustc main.rs 很麻烦,应该交给 Cargo 管理依赖和编译流程

结论

你的问题不是代码本身错了,而是运行方式错了。

正确做法是:

cd 项目根目录
cargo run

并确保 Cargo.toml 里有:

edition = "2024"

如果你当前项目还没有 Cargo.toml,就在项目根目录执行:

cargo init

然后再把 main.rs 放到:

src/main.rs

 

最终选择的解决方案:

方式二:改 Code Runner 配置

{
  "code-runner.runInTerminal": true,
  "code-runner.executorMap": {
    "rust": "cargo run"
  }
}