Я только что создал новый проект Rust и добавил одну зависимость в main.rs. Когда я пытаюсь запустить rustdoc src/main.rs, я получаю следующую ошибку:
error[E0433]: failed to resolve: maybe a missing crate `rand`?
--> src/main.rs:4:5
Несмотря на то, что Cargo.toml уже имеет эту зависимость, она установлена и находится в Cargo.lock, она импортируется в main.rs через use rand;, и проект успешно строится без каких-либо проблем.
[package]
name = "test"
version = "0.1.0"
edition = "2021"
[dependencies]
rand = "0.8.5"
Я видел, что некоторые ответы указывают на отсутствие редакции или на более ранние версии в качестве причины; это не тот случай здесь. Пробовал создавать документы для свежих библиотек или бинарников как описано в документации, но работает пока не ввожу зависимость, тогда повторяется та же ошибка.
Структура проекта (команда rustdoc запускается от root):
├── Cargo.lock
├── Cargo.toml
├── readme.md
└── src
└── main.rs
Любая помощь приветствуется!
Вы бежите rustdoc напрямую? (Вы должны бежать cargo doc).
Просто чтобы еще больше прояснить ситуацию: ваш файл конфигурации называется Cargo.toml, что указывает на то, что ему нужно cargo для разрешения зависимостей ;)
Для получения дополнительной информации см. соответствующий раздел в документации rustdoc.
Почти дубликат stackoverflow.com/questions/69969831/… (это про rustc, но то же самое относится и к rustdoc).

Подводя итог решению, cargo имеет интеграцию с rustdoc, которая автоматически решает проблему зависимостей — пример, приведенный в базовой документации по использованию, работает только при отсутствии зависимостей. Просто запустив cargo doc в корне, вы создадите нужную документацию, но по пути target/doc.
Спасибо за помощь!
Что происходит, когда вы запускаете
cargo docиз корневого каталога? Если это работает, пожалуйста, добавьте вывод изcargo doc --verbose.