2

我想为我的一个 rust 项目设置一个工具链覆盖,以使用 GNU 工具链而不是默认的 MSVC 工具链。但不知何故,其中的配置rust-toolchain.toml被忽略了。(我是最新的,这不是因为扩展。)

这是怎么回事:

λ rustup show
Default host: x86_64-pc-windows-msvc
rustup home:  C:\Users\<username>\scoop\persist\rustup\.rustup

installed toolchains
--------------------

stable-x86_64-pc-windows-gnu
stable-x86_64-pc-windows-msvc (default)

installed targets for active toolchain
--------------------------------------

x86_64-pc-windows-gnu
x86_64-pc-windows-msvc

active toolchain
----------------

stable-x86_64-pc-windows-msvc (default)
rustc 1.57.0 (f1edd0429 2021-11-29)

如您所见,我安装了 GNU 工具链。

所以我创建了以下rust-toolchain.toml文件:

λ cat rust-toolchain.toml
[toolchain]
channel = "stable"
targets = ["x86_64-pc-windows-gnu"]

现在,当我运行时,rustup show我得到一个结果,显示该工具正在查看该文件,但它似乎没有正确处理它,因为它仍然想使用 msvc。

λ rustup show
Default host: x86_64-pc-windows-msvc
rustup home:  C:\Users\<username>\scoop\persist\rustup\.rustup

installed toolchains
--------------------

stable-x86_64-pc-windows-gnu
stable-x86_64-pc-windows-msvc (default)

installed targets for active toolchain
--------------------------------------

x86_64-pc-windows-gnu
x86_64-pc-windows-msvc

active toolchain
----------------

stable-x86_64-pc-windows-msvc (overridden by 'C:\<project path>\rust-toolchain.toml')
rustc 1.57.0 (f1edd0429 2021-11-29)

我的猜测是,出于某种原因,x86_64-pc-windows-gnu它被认为是工具链的有效目标stable-x86_64-pc-windows-msvc,但我不明白为什么、如何防止它,或者如何在rust-toolchain.toml我想使用工具链x86_64-pc-windows-gnu目标而不是工具链目标的文件中写入stable-x86_64-pc-windows-gnustable-x86_64-pc-windows-msvc工具链。

你觉得我怎么能解决这个问题?

注意:使用rustup default stable-gnu按预期工作,但我希望能够在存储库中提交一些东西,以便其他贡献者(和他们的工具)知道他们需要使用这个特定的工具链。

编辑:以防万一。

λ rustup -V
rustup 1.24.3 (ce5817a94 2021-05-31)
4

0 回答 0