我在 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)
Pâr*_*ady 13
利用夜间货运,您可以使用配置-ENV通过功能[env]的部分config.toml。这与 不是同一个文件Cargo.toml,但仍然可以为每个项目设置:
[env]
FOO = "bar"
PATH_TO_SOME_TOOL = { value = "bin/tool", relative = true }
USERNAME = { value = "test_user", force = true }
Run Code Online (Sandbox Code Playgroud)
本节中设置的环境变量将应用于 Cargo 执行的任何进程的环境。
relative表示该变量表示相对于.cargo/包含config.toml文件的目录的目录位置的路径。
force 意味着该变量可以覆盖现有的环境变量。
有关此功能历史记录的更多信息,请参阅相关的 GitHub 问题。
| 归档时间: |
|
| 查看次数: |
9220 次 |
| 最近记录: |