我在64位Windows计算机上使用rustc
和cargo
来编译32位应用程序。使用稳定的工具链时,此功能可以很好地工作,但是当我尝试使用Beta工具链时,它会失败。
已使用rustup install beta
成功安装了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工具链添加另一个(非默认)目标?
答案 0 :(得分:5)
阅读有关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