- Windows 10操作系统
- 生 rust 1.23.1(3df 2264 a9 2020年11月30日)
- 默认rustc 1.50.0(cb 75 ad 5db 2021年2月10日)
- 项目rustc 1.52.0-每晚(4a 8b 6 f708 2021年3月11日)
- 火箭=“0.4.4”
我尝试用rocket构建一个rust项目,但编译时总是出现以下错误,即使成功覆盖了项目的工具链:
D:\GitHub\Learning-Rust\poke_api> rustup override set nightly
info: using existing install for 'nightly-x86_64-pc-windows-msvc'
info: override toolchain for 'D:\GitHub\Learning-Rust\poke_api' set to 'nightly-x86_64-pc-windows-msvc'
nightly-x86_64-pc-windows-msvc unchanged - rustc 1.52.0-nightly (4a8b6f708 2021-03-11)
PS D:\GitHub\Learning-Rust\poke_api> cargo build
Compiling winapi v0.3.9
Compiling serde_derive v1.0.124
Compiling rocket v0.4.7
Compiling pear_codegen v0.1.4
Compiling rocket_codegen v0.4.7
Compiling proc-macro2 v1.0.24
Compiling pq-sys v0.4.6
Compiling aho-corasick v0.6.10
Compiling serde_json v1.0.64
error: failed to run custom build command for `pear_codegen v0.1.4`
Caused by:
process didn't exit successfully: `D:\GitHub\Learning-Rust\poke_api\target\debug\build\pear_codegen-e182711746033ac9\build-script-build` (exit code: 101)
--- stderr
Error: Pear requires a 'dev' or 'nightly' version of rustc.
Installed version: 1.48.0 (2020-11-16)
Minimum required: 1.31.0-nightly (2018-10-05)
thread 'main' panicked at 'Aborting compilation due to incompatible compiler.', C:\Users\gabre\.cargo\registry\src\github.com-1ecc6299db9ec823\pear_codegen-0.1.4\build.rs:24:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: build failed
3条答案
按热度按时间f8rj6qna1#
我在使用火箭时遇到了类似的问题。同样的错误信息,
Error: Pear requires a 'dev' or 'nightly' version of rustc.
如果你在rocket framework网站上看到get-started页面,上面写着:“Rocket充分利用了Rust的语法扩展和其他高级的、不稳定的特性。因此,我们需要使用Rust的夜间版本。”
我的问题是我没有使用每晚版本的rust。在我的终端上运行这个在我的项目目录中为我做了。
如果您在之后检查该目录的货物版本,
您将确认它已切换到夜间版本
mwecs4sa2#
即使使用nightly也无法编译
看起来您有一些过时的依赖项(
pear-codegen
可能是导致问题的依赖项),更新这些依赖项可能会解决编译问题。有关如何覆盖工具链的一般说明
使用rustups
override
可以很好地工作,但是它被绑定到您的本地rustup配置,并且没有在项目内部指定。为了实现这一点,从而使项目更可移植,并允许其他人始终使用正确的工具链,我会推荐工具链文件。它可以看起来像这样(从链接页面的例子),并将准确地指定所需的工具链只为包含项目。
对于您的目的,像这样的简单配置很可能就是您所需要的全部,尽管添加您要使用的组件将是有益的。
deyfvvtc3#
我的问题是
rust-analyser
无法启动,因为多个火箭依赖项需要nightly
或dev
版本的rustc。以下步骤解决了我的问题:
1.通过在app文件夹中运行
rustup override set nightly
,切换到我的rocket项目的nightly。1.移除项目中的所有目标文件夹。(我在根目录下也有一个)
1.从货物缓存中手动删除有问题的缓存包。
cd ~/.cargo/registry/cache/github.com-xxxxxxxxxxxx && rm -r pear_codegen-0.1.5/