Cargo 的环境变量 RUSTC 和 RUSTC_WRAPPER 有什么区别?

What is the difference between Cargo's environment variables RUSTC and RUSTC_WRAPPER?

Cargo 的环境变量解释here

RUSTCRUSTC_WRAPPER 变量看起来像是在做同样的事情。它们有何不同?

如文档所述:

  • 如果定义了RUSTC,Cargo将不会执行这一行:

    rustc <parameters>
    

    但是这个:

    $RUSTC <parameters>
    

    这就像Makefiles中的变量CC来设置替代编译器。

  • 如果定义了RUSTC_WRAPPER,Cargo 将不会调用编译器本身。它将改为调用以下行:

    $RUSTC_WRAPPER rustc <parameters>
    

    你可以添加你想要的选项,或者在编译之前做任何你想做的事情,但是你必须自己调用编译器。嗯,这就是包装器的目的。