是否有所有cfg功能的列表?

时间:2017-01-19 12:39:58

标签: rust rust-cargo

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?

3 个答案:

答案 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
  • unixtarget_family的快捷方式)
  • windowstarget_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 '表示:

  1. 架构:手臂
  2. 供应商:未知。在这种情况下,未指定任何供应商。
  3. 系统:linux
  4. ABI:gnueabihf

答案 2 :(得分:0)

另请参阅https://internals.rust-lang.org/t/all-the-rust-features/4322以获取完整的功能列表。

请记住,部分/大部分功能都不会稳定,因此只能在夜间使用一段时间,并且在稳定或停止之前会受到重大改进/升级。

夜间生锈的特征是适者生存。