错误[E0554]: #![feature]不能在稳定版本通道上使用。无法使用cargo安装racer。

99

我正试图使用Cargo安装Racer,所以在终端中执行了命令cargo install racer,结果出现错误:

error[E0554]: #![feature] may not be used on the stable release channel
--> /home/rajkumar/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-0.1.2/src/lib.rs:47:34
|
47 | #![cfg_attr(feature = "nightly", feature(macro_vis_matcher))]
|                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> /home/rajkumar/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-0.1.2/src/lib.rs:48:34
|
48 | #![cfg_attr(feature = "nightly", feature(allow_internal_unstable))]
|                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0554`.
error: failed to compile `racer v2.1.10`, intermediate artifacts can be found at `/tmp/cargo-install5YWPWW`

Caused by:
Could not compile `scoped-tls`.

To learn more, run the command again with --verbose.

以下是我的Rust详细信息:

$rustc --version
rustc 1.30.0 (da5f414c2 2018-10-24)

> rustup --version 
rustup 1.14.0 (1e51b07cc 2018-10-04)

> cargo --version 
cargo 1.30.0 (36d96825d 2018-10-24)

以下是我OpenSUSE版本的详细信息:

> cat /usr/lib/os-release 
NAME="openSUSE Tumbleweed"
# VERSION="20181029"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="20181029"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:tumbleweed:20181029"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"

为什么我无法使用cargo安装racer?我有什么遗漏吗?


3
该消息表示,您必须使用夜间版编译器。安装后,您可以使用cargo +nightly build进行构建。有关更多信息,请参见https://github.com/rust-lang-nursery/rustup.rs/blob/master/README.md#working-with-nightly-rust和https://doc.rust-lang.org/book/2018-edition/appendix-06-nightly-rust.html。请注意,翻译时不改变原文意思,并尽可能使其通俗易懂。 - Stargateur
6个回答

103

68

我从thiserror crate得到了同样的错误。 在我的情况下,cargo clean修复了问题。 由于这个错误似乎经常出现,建议先尝试cargo clean。也许不必使用nightly。


4
使用 anyhow crate 时遇到了同样的问题。这个提示解决了它。 - Valters Vingolds
有一个和 clippy 相关的问题,我也解决了,谢谢。 - David Dal Busco
谢谢,这很有帮助。但是为什么Rust会陷入这种情况呢?cargo clean有点像锤子,所以想了解真正发生这种情况的原因是什么? - Coder
如果 cargo clean 仍然不起作用,请尝试删除项目下的 target 文件夹,并关闭你的 IDE,然后在命令行上运行 cargo run,最后再打开你的项目 IDE 检查是否能够编译。 - ArL

21
这个错误信息表明,你不能使用稳定版的Rust编译该代码。你需要安装夜间版的Rust并使用它来编译程序。你可以使用以下命令运行代码。
安装夜间版本: rustup install nightly 将夜间版本设置为默认版本: rustup default nightly 如果您随时想切换回稳定版的Rust: rustup default stable 夜间版本会经常更新,因此您可能需要每周或更频繁地更新它。要这样做,您需要运行以下命令: rustup update 我将关闭此问题,因为已解决。如果问题仍然存在,请留言,如果有必要,我们将重新打开问题。

7

当我尝试使用armv7-unknown-linux-gnueabihf的稳定通道来编译源代码时,我收到了0554错误。

它失败的原因是应用程序使用了稳定通道中不可用的功能。

解决方案是安装夜间频道,命令如下:

rustup install nightly

接下来编译的命令为:

cargo +nightly build --target=armv7-unknown-linux-gnueabihf

对我来说,那就可以了。

不要被rustup安装夜间频道时提供的语法所诱惑,因为它不起作用:

cargo build --target=nightly-armv7-unknown-linux-gnueabihf

3
这个命令给我带来了很多错误和问题,我按照以下步骤使其正常工作: cargo +nightly install racer 在我的情况下,我运行了以下三个命令:
1. rustup default nightly
2. rustup toolchain install nightly
3. rustup run nightly cargo bench 

只需使用以下命令运行您的程序:

cargo +nightly bench --bin youscriptname

1

Rust错误代码E0554指出在稳定版本通道上不能使用#![feature]。为了使用某个特性,您必须安装非稳定的Rust版本,如nightly

rustup install nightly

安装完成后,请将其称为+toolchain - cargo CLI指示cargo [+toolchain] [OPTIONS] [COMMAND]

cargo +nightly run
cargo +nightly build

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接