Nein, Sie einige von ihnen Sie von trickst Fracht in erzählen bekommen. Wenn Sie das folgende in einen build script platzieren:
use std::env;
fn main() {
for (key, value) in env::vars() {
if key.starts_with("CARGO_CFG_") {
println!("{}: {:?}", key, value);
}
}
panic!("stop and dump stdout");
}
... wird es die cfg
Flaggen angezeigt Fracht bewusst ist. Die panic!
ist nur da als eine einfache Möglichkeit, Cargo zu bekommen, um die Ausgabe tatsächlich zu zeigen, anstatt sie zu verstecken. Als Referenz sieht die Ausgabe erzeugt dies wie folgt aus:
Compiling dump-cfg v0.1.0 (file:///F:/Programming/Rust/sandbox/cargo-test/dump-cfg)
error: failed to run custom build command for `dump-cfg v0.1.0 (file:///F:/Programming/Rust/sandbox/cargo-test/dump-cfg)`
process didn't exit successfully: `F:\Programming\Rust\sandbox\cargo-test\dump-cfg\target\debug\build\dump-cfg-8b04f9ac3818f82a\build-script-build` (exit code: 101)
--- stdout
CARGO_CFG_TARGET_POINTER_WIDTH: "64"
CARGO_CFG_TARGET_ENV: "msvc"
CARGO_CFG_TARGET_OS: "windows"
CARGO_CFG_TARGET_ENDIAN: "little"
CARGO_CFG_TARGET_FAMILY: "windows"
CARGO_CFG_TARGET_ARCH: "x86_64"
CARGO_CFG_TARGET_HAS_ATOMIC: "16,32,64,8,ptr"
CARGO_CFG_TARGET_FEATURE: "sse,sse2"
CARGO_CFG_WINDOWS: ""
CARGO_CFG_TARGET_VENDOR: "pc"
CARGO_CFG_DEBUG_ASSERTIONS: ""
--- stderr
thread 'main' panicked at 'stop', build.rs:9
note: Run with `RUST_BACKTRACE=1` for a backtrace.
Sie können die Werte extrahieren Sie aus dieser Liste interessiert sind, und steckt sie in eine generierte Quelldatei, die Sie dann importieren (mit #[path]
oder include!
) in die Quelle Ihres Pakets.
Möglicherweise finden Sie dieses Problem relevant: https://github.com/rust-lang/rust/issues/48823 –