我正在按照《Rust编程语言》一书中的说明来构建一个猜谜游戏,但是每当我try 在VSCodium(VSCode的开源版本)终端中运行我的代码(通过命令Cargo run)时,我的代码由于以下错误而拒绝运行:

no targets specified in the manifest
  either src/lib.rs, src/main.rs, a [lib] section, or [[bin]] section must be present

下面是我的Cargo.toml文件:

[package]
name = "GuessingGame"
path = "src/GuessingGame.rs"
version = "0.1.0"
edition = "2021"
authors = ["my name <example@example.com>"]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]

版本: VSCodium:1.73.1 操作系统:Zorin OS 16.2

我try 将[package]更改为[[bin]][lib],但出现了更多错误,包括: this virtual manifest specifies a [lib] section, which is not allowedthis virtual manifest specifies a [[bin]] section, which is not allowed

推荐答案

要获得您想要的配置,您需要单独将包and指定为目标.

[package]
name = "GuessingGame"
version = "0.1.0"
edition = "2021"

[[bin]]
name = "GuessingGame"
path = "src/GuessingGame.rs"


[dependencies]

这就是说-请don't覆盖该路径.当铁 rust 项目达到the standard project layout时,它们的可读性更强,这是由Cargo 自动检测到的.

为此,请将源文件的名称从src/GuessingGame.rs改为src/main.rs,并从Cargo.toml中完全go 掉[[bin]]部分和path部分.构建的可执行文件仍将自动命名为GuessingGame,因为这是您的包名.

Rust相关问答推荐

计算具有相邻调换且没有插入或删除的序列的距离

把Vector3变成Vector4的绝妙方法

为潜在的下游实现使用泛型绑定而不是没有泛型绑定的trait

在Rust中宏的表达式中提取对象

在Rust中有没有办法在没有UB的情况下在指针和U64之间进行转换?

作为1字节位掩码的布尔值 struct

如何修复&q;无法返回引用函数参数的值在异步规则中返回引用当前函数&q;拥有的数据的值?

为什么RefCell没有与常规引用相同的作用域?

借来的价值生命周期 不够长,不确定为什么它仍然是借来的

信号量释放后 Rust 输出挂起线程

使用占位符获取用户输入

为什么某些类型参数仅在特征边界中使用的代码在没有 PhantomData 的情况下进行编译?

根据掩码将 simd 通道设置为 0 的惯用方法?

unwrap 选项类型出现错误:无法移出共享引用后面的*foo

更新 rust ndarray 中矩阵的一行

枚举的利基优化如何在 Rust 中工作?

由特征键控的不同 struct 的集合

为什么允许重新分配 String 而不是 *&String

发生移动是因为 `data` 的类型为 `Vec`,它没有实现 `Copy` 特性

如何在 Rust 的泛型函​​数中同时使用非拥有迭代器和消费迭代器?