`cargo doc` 和 `cargo rustdoc` 之间的区别

and*_*lka 16 rust rust-cargo rustdoc

根据doc.rust-lang.org

\n\n
\n

使用指定的自定义标志构建包的文档

\n
\n\n
\n

构建包的文档

\n
\n

两者有什么区别?据我了解,cargo rustdoc就像cargo doc,但它允许更多 lints\xe2\x80\x94 例如:

\n
#![deny(rustdoc::broken_intra_doc_links)]\n
Run Code Online (Sandbox Code Playgroud)\n

它是否正确?奇怪的是,cargo rustdoc在某些情况下,它也会失败cargo doc。例如

\n
some/folder on some-branch [$!] via  v1.60.0-nightly\n\xe2\x9d\xaf cargo doc\n    Finished dev [unoptimized + debuginfo] target(s) in 0.53s\n\nsome/folder on some-branch [$!] via  v1.60.0-nightly\n\xe2\x9d\xaf cargo rustdoc\nerror: manifest path `some/folder/Cargo.toml` is a virtual manifest, but this command requires running against an actual package in this workspace\n
Run Code Online (Sandbox Code Playgroud)\n

另外,cargo doc不支持添加该-D选项,而cargo rustdoc支持。

\n
\xe2\x9d\xaf cargo doc -- -D rustdoc::broken_intra_doc_links\nerror: Found argument \'-D\' which wasn\'t expected, or isn\'t valid in this context\n\nUSAGE:\n    cargo doc [OPTIONS]\n\nFor more information try --help\n
Run Code Online (Sandbox Code Playgroud)\n

Cha*_*man 11

它们的关系就像cargo build和之间的关系cargo rustccargo doc为整个工作区执行所有常规工作,包括依赖项(默认情况下)。cargo rustdoc允许您直接将标志传递给 rustdoc,并且仅适用于单个 crate。

下面是 的执行代码cargo rustdoc是 的代码cargo doc。唯一的区别是,cargo rustdoc始终指定不检查依赖项,同时cargo doc允许您选择(默认情况下会这样做,但您可以指定 flag --no-deps),并且cargo rustc允许您使用--.