【发布时间】:2022-01-09 03:12:49
【问题描述】:
在我们的项目中,我们需要使用不稳定的货物选项--out-dir,但我们仍然想使用稳定的 rustc 来构建我们的 rust 代码。这可能吗?
【问题讨论】:
标签: rust rust-cargo
在我们的项目中,我们需要使用不稳定的货物选项--out-dir,但我们仍然想使用稳定的 rustc 来构建我们的 rust 代码。这可能吗?
【问题讨论】:
标签: rust rust-cargo
您可以使用 __CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS 环境变量来覆盖 Cargo 通道。顾名思义,它并不是真正打算使用的。但是你可以!请记住,通过这种方法,您只能获得最新稳定版本中包含的不稳定功能(并且对不稳定功能的重要修复不会被反向移植到稳定分支,因为不应该使用它)
# Allow unstable options in Cargo, but use stable rustc
__CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS=nightly cargo build -Z unstable-options
【讨论】:
您应该能够通过修改build.rustc 键来使configure 每晚的cargo 可执行文件使用稳定的rustc 编译器。如果通过将值设置为rustup run stable rustc 来安装rustup,则可以将此委托给稳定的编译器。
【讨论】:
build.rustc 应该是rustc 程序的路径。如何找到rustc 的存储位置?
"rustc") 和环境变量覆盖的存在来看,build.rustc 可以是任何字符串,当传递给 shell,将调用 rustc 编译器。如果您的PATH 中有rustup,则将build.rustc 键设置为rustup run stable rustc 应该将货物的编译器调用委托给rustup,如果我的假设是正确的,这又会将其委托给已安装的稳定rustc。 rustc 可执行文件的实际路径将取决于安装介质(rustup、apt 等)。