rust遇到了error[E0554]: `#![feature]` may not be used on the stable release channel(切換nightly版本)


參考: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就不報錯了.

問題解決

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM