如何仅针对 "bin" 目标禁用 lints

How to disable lints for the "bin" target only

我有一个 Rust 项目文件夹结构,其中包含一个可执行文件和一个共享的 C 兼容库,它们都是使用相同的源构建的。 Cargo.toml 清单文件如下所示:

[package]
name = "foo-bar"
version = "0.1.0"
authors = ...

[lib]
name = "foo_bar"
crate-type = ["rlib", "cdylib"]

[[bin]]
name = "foo-bar"
test = false
doc = false

[dependencies]
...

由于可执行文件未使用所有代码,因此我在使用 cargo build 构建项目时收到一些 "unused code" 警告。我可以在必要时在我的源代码中添加 #[allow(dead_code)] lints,但这也会在构建库目标时禁用它们。

有没有办法仅在编译(功能更小的)bin 可执行目标但为 lib 目标启用它时全局禁用 "dead_code" lint?

You can modify a lint for a whole crate 通过在 crate 的开头放置一个带有 #! 的属性:

main.rs:

#![allow(dead_code)]

// etc.