清单中未指定目标 - src/lib.rs、src/main.rs、[lib] 部分或 [[bin]] 部分必须存在

问题描述 投票:0回答:2

我按照《The Rust 编程语言》一书中的说明构建了一个猜谜游戏,但是每当我尝试在 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 <[email protected]>"]

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

[dependencies]

版本: VSC钠:1.73.1 操作系统:Zorin OS 16.2

我尝试将

[package]
更改为
[[bin]]
[lib]
,但它给了我更多错误,是:
this virtual manifest specifies a [lib] section, which is not allowed
this virtual manifest specifies a [[bin]] section, which is not allowed

rust rust-cargo vscodium
2个回答
9
投票

要获得所需的配置,您需要分别指定包目标。

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

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


[dependencies]

也就是说,请不要覆盖路径。当 Rust 项目坚持标准项目布局(由 Cargo 自动检测到)时,它们的可读性更强。

为此,请使源文件的名称为

src/main.rs
而不是
src/GuessingGame.rs
,并完全从
[[bin]]
中删除
path
部分和
Cargo.toml
。构建的可执行文件仍将自动命名为
GuessingGame
,因为这是您的包名称。


0
投票

可能是脚本所在路径太长,我就是这样,尝试放在磁盘根目录下。

© www.soinside.com 2019 - 2024. All rights reserved.