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?。
答案 0 :(得分:19)
"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
答案 1 :(得分:2)
您还可以使用以下命令:rustc --print target-list
。
每个三元组的格式如下: {arch}-{vendor}-{sys}-{abi} 。
例如,三元组' arm-unknown-linux-gnueabihf '表示:
答案 2 :(得分:0)
另请参阅https://internals.rust-lang.org/t/all-the-rust-features/4322以获取完整的功能列表。
请记住,部分/大部分功能都不会稳定,因此只能在夜间使用一段时间,并且在稳定或停止之前会受到重大改进/升级。
夜间生锈的特征是适者生存。