<分区>
就是这样:我怎么知道项目是通过夜间编译器还是稳定编译器构建的?像这样:
#[cfg(nightly_build)]
use std::ptr::Shared; // on nightly use system's version
#[cfg(not(nightly_build))]
use myshared::Shared; // on stable use my unoptimized Shared
标签 rust
<分区>
就是这样:我怎么知道项目是通过夜间编译器还是稳定编译器构建的?像这样:
#[cfg(nightly_build)]
use std::ptr::Shared; // on nightly use system's version
#[cfg(not(nightly_build))]
use myshared::Shared; // on stable use my unoptimized Shared
最佳答案
您可以使用 rustc_version 来做到这一点crate 和 build.rs 脚本:
extern crate rustc_version;
use rustc_version::{version_meta, Channel}
fn main() {
// Set cfg flags depending on release channel
match version_meta().unwrap().channel {
Channel::Stable => {
println!("cargo:rustc-cfg=RUSTC_IS_STABLE");
}
Channel::Beta => {
println!("cargo:rustc-cfg=RUSTC_IS_BETA");
}
Channel::Nightly => {
println!("cargo:rustc-cfg=RUSTC_IS_NIGHTLY");
}
Channel::Dev => {
println!("cargo:rustc-cfg=RUSTC_IS_DEV");
}
}
}
然后用#[cfg(feature = "RUSTC_IS_STABLE")]
检查一下
关于rust - 编译时检查编译器是否nightly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49247618/