如何指定 Cargo 应该仅在特定目标上构建二进制文件?

lap*_*tou 7 rust rust-cargo

我有一个带有库和二进制文件的 Cargo 项目。该库适用于许多平台,包括 Android,而二进制文件仅适用于 Linux。因此,该二进制文件包含一堆特定于 Linux 的代码,当我以 Android 为目标时,这些代码无法编译。有没有办法指定(不使用功能)二进制文件只能在 Linux 上编译?

我尝试放入#![cfg(target_os = "linux")]main.rs的二进制文件,但随后出现此错误:

error[E0601]: `main` function not found in crate `server`
  --> src/bin/server/main.rs:1:1
   |
1  | / #![cfg(target_os = "linux")]
2  | |
3  | | use anyhow::{self, Context};
4  | | 
...  |
36 | |     }
37 | | }
   | |_^ consider adding a `main` function to `src/bin/server/main.rs`
Run Code Online (Sandbox Code Playgroud)

Kar*_*uru -2

下面的链接包含相关信息,可以帮助您选择目标和选择性编译https://doc.rust-lang.org/cargo/commands/cargo-build.html#target-selection