如何使用命令行指定的变量编译库?
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
。
我希望能够在编译时
通过命令行提供一个变量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
。