#![feature]` may not be used on the stable release channel 问题解决及设置Rust Channel的三种方式
今天在编译一个Rust开源项目时报了下面的错误:
Compiling base_proc_macro v0.1.0 (/data/code/rust/tensorbase/crates/base/proc_macro)
error[E0554]: `#![feature]` may not be used on the stable release channel
--> crates/base/proc_macro/src/lib.rs:17:1
|
17 | #![feature(proc_macro_diagnostic)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^error[E0554]: `#![feature]` may not be used on the stable release channel
--> crates/base/proc_macro/src/lib.rs:18:1
|
18 | #![feature(proc_macro_span)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
从错误信息`#![feature]` may not be used on the stable release channel可以看出当前编译使用的channel还没有包含#![feature]功能,那咋办呢?换channel呗!换之前是不是要先了解下Channel指的是啥?都有哪些可用的Channel? 简单来说channel就是代表我们使用的Rust开发环境是稳定版的,还是试用版的,还是尝鲜版的?就像我们平常开发软件一样一样的,在软件里添加了新功能不能直接把线上的稳定版软件替换掉,因为新版本可能还有bug需要试用一段,试用一段确认没问题了再替换原来的稳定版。稳定版试用版尝鲜版分别对应stable,beta,nightly.在stable里没有的功能,可能在beta和nightly里就有了。要使用beta和nightly版首先要看下有没有安装:
$ rustup toolchain list
stable-x86_64-unknown-linux-gnu (default)
可以看当当前环境只安装了稳定(stable)版,接下来其它Channel,以安装nightly为例:
$ rustup toolchain install nightly
info: syncing channel updates for 'nightly-x86_64-unknown-linux-gnu'
695.5 KiB / 695.5 KiB (100 %) 40.2 KiB/s in 34s ETA: 0s
info: latest update on 2021-01-26, rust version 1.51.0-nightly (f4eb5d9f7 2021-01-25)
info: downloading component 'cargo'
info: retrying download for 'https://static.rust-lang.org/dist/2021-01-26/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz'
6.1 MiB / 6.1 MiB (100 %) 2.0 MiB/s in 4s ETA: 0s
info: downloading component 'clippy'
2.4 MiB / 2.4 MiB (100 %) 2.0 MiB/s in 1s ETA: 0s
info: downloading component 'rust-docs'
14.9 MiB / 14.9 MiB (100 %) 4.4 MiB/s in 4s ETA: 0s
info: downloading component 'rust-std'
25.0 MiB / 25.0 MiB (100 %) 4.8 MiB/s in 6s ETA: 0s
info: downloading component 'rustc'
50.6 MiB / 50.6 MiB (100 %) 5.3 MiB/s in 13s ETA: 0s
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: using up to 500.0 MiB of RAM to unpack components
info: installing component 'clippy'
info: installing component 'rust-docs'
14.9 MiB / 14.9 MiB (100 %) 7.1 MiB/s in 1s ETA: 0s
info: installing component 'rust-std'
25.0 MiB / 25.0 MiB (100 %) 8.0 MiB/s in 5s ETA: 0s
info: installing component 'rustc'
50.6 MiB / 50.6 MiB (100 %) 11.3 MiB/s in 5s ETA: 0s
info: installing component 'rustfmt'nightly-x86_64-unknown-linux-gnu installed - rustc 1.51.0-nightly (f4eb5d9f7 2021-01-25)
安装的时候也可以指定具体的版本信息,默认安装最新的.
安装好后怎么使用呢?
方式一:比较简单的方式是直接安装加更改当前系统默认的channel
$ rustup default nightly
这种方式连上面的安装步骤都一起做了,直接再执行cargo build 都是使用的nightly channel编译构建项目了,也就是原来使用stable的项目现在也改成nightly了,可能我们并不想都改,咋办?能不是只是临时的用下,可以的:
方式二:使用rustup run指定channel
$ rustup run nightly cargo build
要是就临时这么写一次也没什么,如果用的多了cargo build前面总是要多敲一串难免麻烦,能不能在当前项目中就默认是nightly,不影响其它项目呢?也是可以的.
方式三: 使用rustup overwrite设置当前项目使用的channel
进入项目目录执行:
$ rustup override set nightly
再执行cargo build就不报错了.
问题解决
#![feature]` may not be used on the stable release channel 问题解决及设置Rust Channel的三种方式相关推荐
- ArcGIS三种方式打断相交线------Feature To Line工具
有多个layer图层相交线时,选用"Feature To Line"工具,将多个图层相交线打断,然后合并成一个图层. (1) 选择工具栏"Geoprocess ...
- deepin执行apt-get update报错https://deb.opera.com/opera-stable stable Release” 没有 Release 文件N: 无法安全地用该
我使用的是的deepin操作系统 今天执行apt-get update命令时先是报 #apt-get update http://dl.google.com/linux/chrome/deb/dist ...
- W: GPG error: http://dl.google.com/linux/chrome/deb stable Release: The following signatures couldn'
Ubuntu 16.04.2执行 sudo apt-get update .警告如下:W: GPG error: http://dl.google.com/linux/chrome/deb stabl ...
- 64位centos 下编译 hadoop 2.6.0 源码
64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新 ...
- 【转】ABP源码分析二十一:Feature
Feature是什么?Feature就是对function分类的方法,其与function的关系就比如Role和User的关系一样. ABP中Feature具有以下属性: 其中最重要的属性是name, ...
- Feature Selective Anchor-Free Module for Single-Shot Object Detection论文阅读翻译 - 2019CVPR
Feature Selective Anchor-Free Module for Single-Shot Object Detection论文阅读翻译 文章目录 Feature Selective A ...
- Compose 类型稳定性注解:@Stable @Immutable
前言 @Stable 和 @Immuable 是 Compose 特有的类型稳定性注解,可以帮助 Compose 提升重组性能.本文将针对 Compose 类型的稳定性以及相关注解的使用做一个介绍. ...
- Rich feature hierarchies for accurate object detection and semantic segmentation
Abstract 在过去几年中,在标准PASCAL VOC数据集上测量的目标检测性能保持稳定.性能最好的方法是复杂的集成系统,通常将多个低级图像特征与高级上下文相结合.在本文中,我们提出了一种简单且可 ...
- 论文精读:R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation...
1.论文核心 我们提出了一种简单且可扩展的检测算法,相对于之前对VOC2012的最佳结果,它将平均平均精度(mAP)提高了30%以上--实现了53.3%的mAP.我们的方法结合了两个关键的见解:(1) ...
最新文章
- 【力扣网练习题】整数反转
- mybaits二十七:spring, spring mvc,mybatis(ssm) 整合
- CodeForces - 1284B New Year and Ascent Sequence(乱搞)
- 用计算机探索 按一定规律排列,探索规律练习题1
- Spring中拦截/和拦截/*的区别 - 不能访问到返回的JSP - 访问静态资源(jpg,js等)
- 实现Linux系统的回收站
- SpringMVC默认访问路径配置
- Vue路由History模式分析
- 大数据Hadoop原理学习(HDFS,MAPREDUCE,YARN)
- 社区团购会一直走下去吗?
- 10001_关于window10下其它主机无法ping通本地的设置
- Presenter层如何高度的复用
- Mongodb入门安装
- 魔兽地图服务器修改,魔兽地图编辑器的问题,怎么修改RPG
- Echar的学习记录
- 学习编程语言有哪些基本步骤呢?
- 折弯公差尺寸及工艺要求
- 第四次工业革命,人工智能革命真的来了
- FFmpeg动效实践与探索(文字方框的同步展开及收缩)
- ios免越狱脚本实现方案,苹果手机实现自动抖音发私信且是中文输入,FN键切换输入法,最新的苹果11以上圆角的屏幕一并支持。