今天在编译一个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的三种方式相关推荐

  1. ArcGIS三种方式打断相交线------Feature To Line工具

    有多个layer图层相交线时,选用"Feature To Line"工具,将多个图层相交线打断,然后合并成一个图层. (1)       选择工具栏"Geoprocess ...

  2. 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 ...

  3. 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 ...

  4. 64位centos 下编译 hadoop 2.6.0 源码

    64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新 ...

  5. 【转】ABP源码分析二十一:Feature

    Feature是什么?Feature就是对function分类的方法,其与function的关系就比如Role和User的关系一样. ABP中Feature具有以下属性: 其中最重要的属性是name, ...

  6. Feature Selective Anchor-Free Module for Single-Shot Object Detection论文阅读翻译 - 2019CVPR

    Feature Selective Anchor-Free Module for Single-Shot Object Detection论文阅读翻译 文章目录 Feature Selective A ...

  7. Compose 类型稳定性注解:@Stable @Immutable

    前言 @Stable 和 @Immuable 是 Compose 特有的类型稳定性注解,可以帮助 Compose 提升重组性能.本文将针对 Compose 类型的稳定性以及相关注解的使用做一个介绍. ...

  8. Rich feature hierarchies for accurate object detection and semantic segmentation

    Abstract 在过去几年中,在标准PASCAL VOC数据集上测量的目标检测性能保持稳定.性能最好的方法是复杂的集成系统,通常将多个低级图像特征与高级上下文相结合.在本文中,我们提出了一种简单且可 ...

  9. 论文精读:R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation...

    1.论文核心 我们提出了一种简单且可扩展的检测算法,相对于之前对VOC2012的最佳结果,它将平均平均精度(mAP)提高了30%以上--实现了53.3%的mAP.我们的方法结合了两个关键的见解:(1) ...

最新文章

  1. 【力扣网练习题】整数反转
  2. mybaits二十七:spring, spring mvc,mybatis(ssm) 整合
  3. CodeForces - 1284B New Year and Ascent Sequence(乱搞)
  4. 用计算机探索 按一定规律排列,探索规律练习题1
  5. Spring中拦截/和拦截/*的区别 - 不能访问到返回的JSP - 访问静态资源(jpg,js等)
  6. 实现Linux系统的回收站
  7. SpringMVC默认访问路径配置
  8. Vue路由History模式分析
  9. 大数据Hadoop原理学习(HDFS,MAPREDUCE,YARN)
  10. 社区团购会一直走下去吗?
  11. 10001_关于window10下其它主机无法ping通本地的设置
  12. Presenter层如何高度的复用
  13. Mongodb入门安装
  14. 魔兽地图服务器修改,魔兽地图编辑器的问题,怎么修改RPG
  15. Echar的学习记录
  16. 学习编程语言有哪些基本步骤呢?
  17. 折弯公差尺寸及工艺要求
  18. 第四次工业革命,人工智能革命真的来了
  19. FFmpeg动效实践与探索(文字方框的同步展开及收缩)
  20. ios免越狱脚本实现方案,苹果手机实现自动抖音发私信且是中文输入,FN键切换输入法,最新的苹果11以上圆角的屏幕一并支持。

热门文章

  1. 用计算机编故事,计算机的小故事有哪些
  2. 微信小程序接入阿里云直播
  3. Tomcat中如何配置使用APR
  4. JQuery-图片剪裁
  5. SAP中“管理/寄售移动被无值记账”提示问题分析处理实例
  6. 杭电OJ1001 C
  7. 2012系统服务器网络限制,Windows server 2012 r2对计算机的网络速度限制在~30mbps
  8. 练习-Java多路分支之月份天数计算
  9. 网络安全 Kali虚拟机的安装和简单使用
  10. 高德地图绘制标记点,点击弹出弹框进入第三方地图软件