Rustdoc не распознает импортированные зависимости

Я только что создал новый проект 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

Любая помощь приветствуется!

Что происходит, когда вы запускаете cargo doc из корневого каталога? Если это работает, пожалуйста, добавьте вывод из cargo doc --verbose.

frankenapps 30.12.2022 13:00

Вы бежите rustdoc напрямую? (Вы должны бежать cargo doc).

Chayim Friedman 30.12.2022 13:02

Просто чтобы еще больше прояснить ситуацию: ваш файл конфигурации называется Cargo.toml, что указывает на то, что ему нужно cargo для разрешения зависимостей ;)

Finomnis 30.12.2022 13:13

Для получения дополнительной информации см. соответствующий раздел в документации rustdoc.

Finomnis 30.12.2022 13:14

Почти дубликат stackoverflow.com/questions/69969831/… (это про rustc, но то же самое относится и к rustdoc).

Jmb 30.12.2022 21:16
Почему Python в конце концов умрет
Почему Python в конце концов умрет
Последние 20 лет были действительно хорошими для Python. Он прошел путь от "просто языка сценариев" до основного языка, используемого для написания...
0
5
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Подводя итог решению, cargo имеет интеграцию с rustdoc, которая автоматически решает проблему зависимостей — пример, приведенный в базовой документации по использованию, работает только при отсутствии зависимостей. Просто запустив cargo doc в корне, вы создадите нужную документацию, но по пути target/doc.

Спасибо за помощь!

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