web-dev-qa-db-ja.com

特定のrustupツールチェーンのRustターゲットをインストールする方法は?

64ビットのWindowsマシンでrustccargoを使用して、32ビットのアプリケーションをコンパイルしています。これは、安定したツールチェーンを使用する場合は正常に機能しますが、ベータツールチェーンを使用しようとすると失敗します。

ベータツールチェーンは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は「インストール済み」と表示することもあります。おそらく、このコマンドは安定版のターゲットを追加するだけであり、ベータツールチェーンを指定する方法を見つけることができませんでした。

ベータツールチェーンに別の(デフォルト以外の)ターゲットを追加するにはどうすればよいですか?

4
blerontin

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のヘルプを読む:

$ 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
10
Shepmaster