Cargo 的环境变量 RUSTC 和 RUSTC_WRAPPER 有什么区别?
What is the difference between Cargo's environment variables RUSTC and RUSTC_WRAPPER?
Cargo 的环境变量解释here。
RUSTC
- Cargo 将代替 运行 rustc
执行此指定的编译器。
RUSTC_WRAPPER
- 而不是简单地 运行 rustc
,Cargo 将执行这个指定的包装器,作为其命令行参数传递 rustc
调用,第一个参数rustc
.
RUSTC
和 RUSTC_WRAPPER
变量看起来像是在做同样的事情。它们有何不同?
如文档所述:
如果定义了RUSTC
,Cargo将不会执行这一行:
rustc <parameters>
但是这个:
$RUSTC <parameters>
这就像Makefiles中的变量CC
来设置替代编译器。
如果定义了RUSTC_WRAPPER
,Cargo 将不会调用编译器本身。它将改为调用以下行:
$RUSTC_WRAPPER rustc <parameters>
你可以添加你想要的选项,或者在编译之前做任何你想做的事情,但是你必须自己调用编译器。嗯,这就是包装器的目的。
Cargo 的环境变量解释here。
RUSTC
- Cargo 将代替 运行rustc
执行此指定的编译器。RUSTC_WRAPPER
- 而不是简单地 运行rustc
,Cargo 将执行这个指定的包装器,作为其命令行参数传递rustc
调用,第一个参数rustc
.
RUSTC
和 RUSTC_WRAPPER
变量看起来像是在做同样的事情。它们有何不同?
如文档所述:
如果定义了
RUSTC
,Cargo将不会执行这一行:rustc <parameters>
但是这个:
$RUSTC <parameters>
这就像Makefiles中的变量
CC
来设置替代编译器。如果定义了
RUSTC_WRAPPER
,Cargo 将不会调用编译器本身。它将改为调用以下行:$RUSTC_WRAPPER rustc <parameters>
你可以添加你想要的选项,或者在编译之前做任何你想做的事情,但是你必须自己调用编译器。嗯,这就是包装器的目的。