我在64位Windows计算机上使用rustccargo来编译32位应用程序。在使用稳定的工具链时,此方法可以很好地工作,但是当我尝试使用Beta工具链时,它将失败。

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甚至将其显示为“已安装”。可能此命令仅添加稳定目标,而我找不到如何指定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

我相信它将默认将目标添加到“当前”工具链中,因此您也可以这样做:

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



阅读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

关于rust - 如何为特定的rustup工具链安装Rust目标?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53210121/

10-12 06:10