如何为特定的 rustup 工具链安装 Rust 目标?

How to install a Rust target for a specific rustup toolchain?

我在我的 64 位 Windows 机器上使用 rustccargo 来编译 32 位应用程序。这在使用稳定工具链时工作正常,但当我尝试使用测试版工具链时它失败了。

Beta 工具链已成功安装 rustup install beta。在项目文件夹中有一个包含以下行的 .cargo/config 文件:

[build]
target = "i686-pc-windows-msvc"

[target.i686-pc-windows-msvc]
rustflags = ["-Ctarget-feature=+crt-static"]

当运行cargo +beta build出现如下错误:

error[E0463]: can't find crate for `core`
  |
  = note: the `i686-pc-windows-msvc` target may not be installed

我已经尝试 运行 rustup target add i686-pc-windows-msvc 来解决这个问题,但没有帮助; rustup target list 甚至显示为 "installed"。可能这个命令只添加了稳定的目标,我找不到如何指定 beta 工具链。

如何为 Beta 工具链添加另一个(非默认)目标?

阅读 rustup target add 的帮助:

$ rustup target add --help
rustup-target-add
Add a target to a Rust toolchain

USAGE:
    rustup target add [OPTIONS] <target>...

FLAGS:
    -h, --help    Prints help information

OPTIONS:
        --toolchain <toolchain>    Toolchain name, such as 'stable', 'nightly', or '1.8.0'. For more information see
                                   `rustup help toolchain`

因此你想要:

rustup target add i686-pc-windows-msvc --toolchain beta

我相信它会默认将目标添加到 "current" 工具链,因此您也可以这样做:

rustup override set beta               # in your project directory
rustup target add i686-pc-windows-msvc #
cargo build                            # no more +beta

rustup target list even displays it as "installed"

阅读 rustup target list 的帮助:

$ rustup target list --help
rustup-target-list
List installed and available targets

USAGE:
    rustup target list [OPTIONS]

FLAGS:
    -h, --help    Prints help information

OPTIONS:
        --toolchain <toolchain>    Toolchain name, such as 'stable', 'nightly', or '1.8.0'. For more information see
                                   `rustup help toolchain`

因此你想要:

rustup target list --toolchain beta