使用 no_main
时Rust 中的外部属性,cargo doc
提示未使用的属性
并且crate-level属性应该位于根模块中
。
我正在使用 Cargo 1.42.0-nightly。
相关代码:
// main.rs
#![no_main]
这仅在调用cargo doc
时发生; cargo build
按预期工作。
我见过https://github.com/rust-lang/rust/issues/62184 ,但其中不包含任何答案。 我也见过https://github.com/rust-lang/rust/issues/43144 ,从我跟踪到 https://github.com/rust-lang/rust/pull/64471 ,但即使该合并请求已经合并,问题仍然存在。
如何解决这个警告?
最佳答案
此警告是由 known bug in cargo/rustdoc 引起的但尚未修复。
到目前为止,可以通过使用 cfg_attr
attribute 轻松解决这个问题。与 rustdoc 的 cfg(doc)
结合使用通过以下方式:
// main.rs
#![cfg_attr(not(doc), no_main)]
此代码在所有情况下都应用 no_main
属性,构建文档时除外。
关于rustdoc no_main "crate-level attribute should be in the root module",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60139645/