Rust具有check configuration at build时间的能力,例如#[cfg(target_os = "linux")]
或if cfg!(target_os = "linux") {...}
,其中target_os
是一个特征。
是否有可以在Rust中检查的所有(或至少是常用的)功能的列表?
查看有关属性Is there an exhaustive list of standard attributes anywhere?的相关问题。
"Conditional compilation" section of the Reference有一个必须定义的配置列表(从Rust 1.14开始):
target_arch
的值如下:
x86
x86_64
mips
powerpc
powerpc64
arm
aarch64
target_os
的值如下:
windows
macos
ios
linux
android
freebsd
dragonfly
bitrig
openbsd
netbsd
target_family
的值如下:
unix
windows
unix
(target_family
的捷径)windows
(target_family
的捷径)target_env
的值如下:
gnu
msvc
musl
""
(空字符串)target_endian
的价值观:
little
big
target_pointer_width
的值如下:
32
64
target_has_atomic
的值如下:
8
16
32
64
ptr
target_vendor
的值如下:
apple
pc
unknown
test
debug_assertions
您也可以使用此命令:rustc --print target-list
。
每个三元组的格式如下:{arch} - {vendor} - {sys} - {abi}。
例如,三重'arm-unknown-linux-gnueabihf'指的是:
另请参阅https://internals.rust-lang.org/t/all-the-rust-features/4322以获取全面的功能列表。
请记住,一些/大多数功能将不会稳定,因此只能在夜间使用一段时间,并且在稳定或停止之前需要进行重大改进/升级。
每晚生锈的特征是适者生存。