số Bạn có thể nhận được một số của họ bằng cách lừa chở hàng vào nói cho bạn. Nếu bạn đặt đoạn mã sau vào một build script:
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");
}
... nó sẽ hiển thị cfg
cờ Cargo là nhận thức được. Các panic!
là chỉ có như là một cách dễ dàng để có được hàng hóa để thực sự hiển thị đầu ra thay vì ẩn nó. Để tham khảo, sản lượng này tạo ra trông như thế này:
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.
Bạn có thể trích xuất các giá trị mà bạn đang quan tâm từ danh sách này, và đổ chúng vào một tập tin nguồn tạo ra, mà bạn có thể sau đó nhập khẩu (sử dụng #[path]
hoặc include!
) vào nguồn của gói.
Nguồn
2017-04-16 08:33:52
Bạn có thể thấy vấn đề này có liên quan: https://github.com/rust-lang/rust/issues/48823 –