rust - 如何排除在 OS X 上构建文件?

标签 rust conditional-compilation rust-cargo

我有 src/bin/linux-only.rs 做一些只在 Linux 上工作的事情(例如,只存在于 Linux 上的 libc 绑定(bind))。我想排除该文件在 OS X 上构建。

我开始将 #[cfg(target_os = "linux")] 放在 linux-only.rs 中的每个 block 上,但这使源代码变得杂乱无章原因。

有更好的方法吗?

最佳答案

在文件顶部写入 #![cfg(target_os = "linux")](注意感叹号)将适用于整个文件(只要它包含单个模块) ),而不仅仅是下一个方 block (项目)。来源:Rust reference .

编辑:如果您可以将该文件移动到它自己的箱子中,您可以利用 Cargo 的 platform-specific dependencies .

关于rust - 如何排除在 OS X 上构建文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39733252/

相关文章:

rust - 如何将枚举值与整数匹配?

rust - 在 Rust 中读取和写入相同的 TcpStream

java - Android Cordova 应用程序的条件编译

delphi - 在项目的主要单元中使用条件 - IDE 会破坏代码

error-handling - 如何返回包含结果迭代器的每个错误的结果,而不仅仅是第一个错误?

rust - 为什么Rust要求此变量的 `'静态生命周期?

c# - 在 C# 中的 #if 中使用 #define 预处理器指令是否有效

ubuntu - 无法使用 apt 安装 rustc 版本 1.7.0

rust - 如何使用 Cargo 将参数传递给 Rust 中的 gcc?

oop - 有没有办法将 Trait 实现和防御拆分到不同的模块中?