Rust by Example

12.3 cfg

環境に応じたコンパイルをするには2種類の方法があります。

  • cfgアトリビュート: #[cfg(...)]をアトリビュートとして使用する。
  • cfg!マクロ: cfg!(...)をブーリアンとして評価する。

いずれの場合も適切なシンタックスで記述する必要があります。

// この関数はターゲットOSがLinuxの時のみコンパイルされる。 #[cfg(target_os = "linux")] fn are_you_on_linux() { println!("You are running linux!") } // そしてこの関数はターゲットOSがLinux*ではない*ときのみコンパイルされる。 #[cfg(not(target_os = "linux"))] fn are_you_on_linux() { println!("You are *not* running linux!") } fn main() { are_you_on_linux(); println!("Are you sure?"); if cfg!(target_os = "linux") { println!("Yes. It's definitely linux!"); } else { println!("Yes. It's definitely *not* linux!"); } }

See also:

参照(reference), cfg!, マクロ.