它可以幫你產生專案、編譯專案、下載專案的相依套件
再搭配 crates.io (Rust 社群的 package registry) 根本超方便 OuO
cargo 我查字典是貨物,而 crate 是貨箱,恩....好像有什麼感覺又沒有 OuO
Photo by chuttersnap on Unsplash |
不像寫 python 時,雖然可以用 pip install 安裝一堆套件
但是抖抖的
因為不知道怎麼給其他人使用,或是別人裝的版本可能不能運作
(一直講別的語言的壞話好像不可取
(總之,這是我自己的經驗,如果有更好的方式但是我不知道的話歡迎指正@@
<107.04.25 更新>
剛說完壞話之後就有人 來解答 OAO
python 有 wheel 檔,所謂造過的輪子不必重造....
滿滿的連結:Unofficial Windows Binaries for Python Extension Packages
也有人去對所有 python 的管理工具做大亂鬥:Python 包管理工具解惑
產生專案
專案有分成兩種:binary (可執行應用程式)、library (函式庫)一般透過 flag (--bin、--lib) 控制
<注意> 在 1.25.0 版後預設從 --lib 改成 --bin
例如:產生叫做 hello 的可執行應用程式
$ cargo new hello --bin也可以不加上 flag (1.25.0 後)
$ cargo new hello有印出這個就代表成功了,這時候就會發現多了一個 hello 的資料夾
Created binary (application) `hello` project
檔案架構
hello/ .git/ .gitignore Cargo.toml src/ main.rs有沒有看到還很貼心的順便幫你用 git 版本控制 OuO
檔案內容
Cargo.toml:TOML 是一種簡易設定檔格式,還可以針對不同套件進行版本選擇
Cargo 主要拿來記錄專案相依性,還有其他一堆功能 (e.g. 測試)
[package] name = "hello" version = "0.1.0" authors = ["Your Name <you@example.com>"] [dependencies]
main.rs:
恩....就最原本的印出 Hello, World!
fn main() { println!("Hello, world!"); }
編譯專案
純粹 build (建置):
$ cargo build $ cargo build --release # 釋出用建置之後會產生 Cargo.lock 檔和 target 資料夾
Cargo.lock 是由 Cargo 維護,是記錄專案的實際資訊,不可手動更改
target 裡面有 debug 資料夾是因為預設使用除錯模式,但是檔案很多
若完成開發後要釋出時可以使用 --release 這會產生比較少的檔案,並且最佳化
hello/ .git/ .gitignore Cargo.lock Cargo.toml src/ main.rs target/ debug/ ← 裡面一堆東西建置完後可以執行
$ ./target/debug/hello $ ./target/release/hello # 釋出用
直接建置並執行:
$ cargo run
清空建置內容:
刪除 target 資料夾$ cargo clean
下載專案的相依套件
就來簡單操作一下以使用 text_io 這個套件為例
此套件提供跟 scanf() 相似的 macro,簡單來說就是鍵盤輸入
到 crates.io 搜尋 text_io,旁邊有一個按鈕可以複製 text_io = "0.1.7"
當然用手打也可以,不過直接複製比較保險 嗎 OuO
接著打開 Cargo.toml,並在 [dependencies] 下方貼上
接著看要不要先建置 (build) 都可以
使用 cargo build 它會自動下載並編譯
接著就來使用吧
打開 src/main.rs
內容改成:
#[macro_use] extern crate text_io; fn main() { println!("Input name:"); let name: String; scan!("{}\n", name); println!("Hello, {}!", name); }
用 cargo run 編譯並執行
沒意外下一篇說個變數 QuQ
沒有留言:
張貼留言