В манифесте не указаны цели — должны присутствовать либо src/lib.rs, src/main.rs, либо раздел [lib], либо раздел [[bin]]

Я следую инструкциям в книге «Язык программирования Rust», чтобы создать игру-угадайку, но всякий раз, когда я пытаюсь запустить свой код (через команду Cargo run) в терминале VSCodium (версия VSCode с открытым исходным кодом), мой код отказывается для запуска из-за следующей ошибки:

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]

ВЕРСИИ: VSCodium: 1.73.1 ОС: Зорин ОС 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

Можете ли вы выполнить cargo build в терминале? Какие файлы у вас есть в src?

Cerberus 26.11.2022 19:25
cargo build возвращает ту же ошибку, и единственный файл, который у меня есть в src, это GuessingGame.rs
ThatVibingCat 26.11.2022 19:39
Почему Python в конце концов умрет
Почему Python в конце концов умрет
Последние 20 лет были действительно хорошими для Python. Он прошел путь от "просто языка сценариев" до основного языка, используемого для написания...
2
2
134
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы получить желаемую конфигурацию, вам нужно отдельно указать пакет и цель.

[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, потому что это имя вашего пакета.

Другие вопросы по теме