我在 Cargo.toml 中列出了一个需要特定环境变量集的依赖项。我可以export FOO=bar在 bash中运行并且一切正常,但是对于我的生活,我无法弄清楚如何在编译时使用 Cargo 导出这个环境变量。我试过设置环境变量build.rs通过std::env,Command和println!所有没有效果:
// build.rs
fn main() {
Command::new("ls")
.env("FOO", "bar")
.spawn()
.expect("ls command failed to start");
}
Run Code Online (Sandbox Code Playgroud)
// build.rs
fn main() {
std::env::set_var("FOO", "bar");
}
Run Code Online (Sandbox Code Playgroud)
// build.rs
fn main() {
println!("cargo:rustc-env=FOO=bar");
}
Run Code Online (Sandbox Code Playgroud) 我想在编译期间初始化一个变量。例如,我想初始化变量VAR,以VALUE编译代码时:
match env::var("VAR") {
Ok(value) => println!("Ok {}", value),
Err(e) => println!("Error ({})", e),
};
Run Code Online (Sandbox Code Playgroud)
但是,我想在no_std上下文中执行此操作,因此无法用于std::env访问环境。是否有可能做到这一点?