如何使用命令行指定的变量编译库?

How to compile a library with a variable specified via command line?

我希望能够在编译时

通过命令行提供一个变量
MY_VAR="my_var1" cargo build

# or
MY_VAR="my_var111" cargo build

# or
MY_VAR="my_varfdsafdsafds" cargo build

一个库应该编译一个变量的值,并在它的代码中看到这个值。库不能在运行时解析变量,而是在编译时解析。

我不考虑以任何方式更改库的代码,也不考虑 .cargo/config,也不考虑 Cargo.toml

我该怎么做?可能吗?

您可以使用env!()宏在编译时获取环境变量的值:

let my_var: &'static str = env!("MY_VAR");

这会将编译期间的值 MY_VAR 嵌入到二进制文件中,因此它在运行时可用作 &'static str