參考:https://blog.51cto.com/u_14256460/2627326
從錯誤信息`#![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
安裝的時候也可以指定具體的版本信息,默認安裝最新的.
安裝好后怎么使用呢?
方式一:比較簡單的方式是直接安裝加更改當前系統默認的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就不報錯了.
問題解決