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

时间:2018-05-21 09:52:54

标签: rust rust-cargo

解释了货物的环境变量here

  • RUSTC - 而不是运行rustc,Cargo将执行此指定的编译器。
  • RUSTC_WRAPPER - 而不是简单地运行rustc,Cargo将执行此指定的包装,将rustc调用作为其命令行参数传递,第一个参数为rustc

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

1 个答案:

答案 0 :(得分:7)

正如文件所述:

  • 如果定义了RUSTC,Cargo将不执行此行:

    rustc <parameters>
    

    但是这一个:

    $RUSTC <parameters>
    

    这就像Makefile中的变量CC一样,用于设置替代编译器。

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

    $RUSTC_WRAPPER rustc <parameters>
    

    您可以添加所需的选项,或在编译之前执行任何操作,但您必须自己调用编译器。嗯,这就是包装器的目的。