是否存在基于常量存在条件的条件编译的方法?

问题描述 投票:0回答:1

libc库定义了许多常量,这些常量可以作为标志传递给open(),例如O_APPENDO_CREAT等。其中某些标志仅为某些OS目标定义。如果有一种方法可以在我的代码中自由使用O_WHATEVER,而不用担心它实际上是否在libc中定义,那就太好了:

#[cfg(???)]
const O_WHATEVER = libc::O_WHATEVER;
#[cfg(not(???))]
const O_WHATEVER = 0;

如果我上面的示例中的???是某种is_defined(libc::O_WHATEVER),那就太好了。否则,我需要找出所有在libc中定义了O_WHATEVER的操作系统组合,这确实是很痛苦的。

rust conditional-compilation
1个回答
0
投票

自Rust 1.41起。 RFC 2523 — cfg_version and cfg_accessible引入:

cfg_version
© www.soinside.com 2019 - 2024. All rights reserved.