rust 货物安装-指定工具链?(Windows 10)

2exbekwf  于 2022-11-12  发布在  Windows
关注(0)|答案(2)|浏览(118)

我是Rust的新手,通过以下方式将其安装在Conda环境中:conda create -c conda-forge -n env_rust rust
一切都很顺利,在激活康达环境后,铁 rust 和货物都在那里:

rustc --version && cargo --version
rustc 1.53.0 (53cb7b09b 2021-06-17)
cargo 1.53.0 (4369396ce 2021-04-27)

然后我安装了JupyterLab和其他一些位,没有问题。当我试图通过cargo install evcxr_jupyter为Jupyter安装“EvCXR内核”时,它失败了:
错误:与link.exe链接失败
我知道这可以通过从Visual Studio构建工具安装MSVC工具链来修复(即“C++桌面开发”工作负载)。我已经从winlibs(https://winlibs.com/)安装了gcc工具链环境。

如何让cargo使用x86_64-pc-windows-gnu工具链(可能还有x86_64-w64-mingw32-gcc链接器)而不是x86_64-pc-windows-msvc进行编译?

请注意,“rustup”似乎没有作为安装conda的“rust”包的一部分安装在conda环境中,而且我以前从未在系统上安装过rust(通过rustup或任何其他方式)。
我尝试了cargo install --target=x86_64-pc-windows-gnu evcxr_jupyter,但出现以下错误:
错误[E0463]:找不到core的板条箱|=注意:可能未安装x86_64-pc-windows-gnu目标
错误:由于上一个错误而中止
有关此错误的详细信息,请尝试rustc --explain E0463
我看了解释建议,现在有点搞不懂了。

**编辑:**使用conda list -n env_rust进一步搜索显示:

...
rust                      1.53.0               hf8d6059_0    conda-forge
rust-std-x86_64-pc-windows-msvc
...

我猜至少有一部分问题,如果这是可以解决的话,就在那里...做一个conda search -c conda-forge/label/rust_dev rust*揭示了一些其他的位,但不是...“pc-windows-gnu”,我希望和目前认为可能是我需要的...

rust-gnu_win-64               1.38.0               1  pkgs/main
rust-std-x86_64-pc-windows-msvc 1.48.0.dev20200918      h3e96b3b_1  conda-forge/label/rust_dev
rust_win-64          1.53.0.dev20210324      h582ca54_1  conda-forge/label/rust_dev

我打算在rust-gnu_win-64周围嗅一嗅,看看它能为我做些什么。

**编辑2:**这似乎只是一个旧版本的Rust。我可能只是心软,并通过rustup-init.exe安装Rust完全以外的miniconda,并学习使用的东西,通过...
**编辑3:**对于其他偶然发现的人来说,这些安装程序名称与安装后使用的工具链无关,它实际上只是反映了用于构建安装程序的工具链......因此结果是相同的。请参见:

bnlyeluc

bnlyeluc1#

您可以在建置时指定工具链,如下所示:

cargo +toolchain build

因此,在您的情况下,它将是:

cargo +x86_64-pc-windows-gnu build
s4chpxco

s4chpxco2#

rustup toolchain list应该会给予你一个列表,列出所有为rust编译而安装的工具链,如下所示:

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

当您使用cargo <subcommand>编译rust代码时,使用默认值。
更改默认工具链rustup default <toolchain-name>。如果您希望仅使用特定工具链编译一次rust代码而不更改默认值,您可以使用cargo +<toolchain> <subcommand>进行此操作,例如cargo +nightly run(无需编写完整的工具链名称)
而且如果之前没有工具链,你可以用rustup install <toolchain-name>安装它。

相关问题