rustdoc no_main "crate-level attribute should be in the root module"

标签 rust rust-cargo

使用 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/

相关文章:

memory - 如何调整结构体的大小?

rust - Rust 中是否有 "Optimize debugging experience"编译器标志?

rust - cargo 、工作空间和临时本地依赖项

rust - 从 rs-GTK 中的 GTK::Entry 获取输入

rust - 如何在 Rust 中创建可用作 Reader、Writer 或 Seek 的内存对象?

rust - 如何迭代所有字节值(overflowing_literals in `0..256`)

rust - 我可以创建一个编译错误来检查一个特征是否有另一个特征作为超特征吗?

rust - 从与就地定义不一致的函数返回闭包

rust - 运行安装在 Debian 中的 Rust 二进制文件时如何传递 RUST_BACKTRACE=1?

rust - 测试溢出时忽略 Cargo build --release 选项