iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0

Rust 是編譯語言,所以我們寫完程式碼都必須要先經過編譯,才會開始執行我們所寫的程式碼

每次寫完程式碼就要執行一次 rustc

這邊我們要介紹一個工具叫做 Cargo

他可以用來做什麼事情呢?

就像是 js 的 npm 、 yarn 或者是 ruby 的 gem
除了可以編譯以外,還可以幫你載入需要的函示庫

Cargo 該怎麼裝?

只要你裝過 Rust ,就不需要再另外安裝 Cargo,我們在安裝 Rust 的過程中就把 Cargo 裝好囉

不過我們可以用以下指令來查看 Cargo 的版本

cargo --version

Cargo 該怎麼用

我們可以用 Cargo 來建立一個新專案

使用 Cargo 來建立專案,會產生 Cargo.toml / src目錄 / target目錄 / Cargo.lock / .gitignore

Cargo.toml 這裡面會記載著這個專案的基本資料,例如名稱是什麼、版號、以及使用的套件有哪些

src 裡面會有 main.rs ,也就是我們會在裡面寫程式碼的檔案

target 裡面會有編譯後的執行檔案

Cargo.lock 算是套件的紀錄檔,紀錄此專案使用了哪些套件

.gitignore 應該不需要我介紹,就是版控會用到的檔案

接下來我們就用 cargo 來建立專案

cargo new 專案名稱

用 Cargo 編譯程式碼

建立完專案後,我們必須將專案的程式碼編譯,有兩種編譯指令,我們先來介紹第一個

cargo build

不過他只會編譯,並不會直接運行。

再來我們來看第二個

cargo run

這個不僅會幫你編譯,也會直接運行

不過他不會產生執行檔案

所以上述兩種的差異在於,是否有產生執行檔案以及是否會運作程式碼

用 Cargo 檢查程式碼

如果不希望在 run 的時候噴錯,那我們可以用下列指令來檢查程式碼

cargo check

Crate

在 Rust 中,Crate 是一個編譯單元,

編譯單元可分為函式庫以及應用程式執行檔,

以一個新專案來說, main.rs 就是一個 Crate

編譯單元可以做什麼?

在 Rust 中,我們會依照這個編譯單元,

編譯成一個可執行的檔案或者可以使用的函式庫。

所以 Crate 怎麼組成的?

要看這個 Crate 是函示庫還是應用程式執行檔,不過 Crate 的源頭會是一個原始碼檔案

如果是應用程式執行檔的話,是由二進位檔案組合而成,而且一定要在 main 的函式中執行

函式庫的話,可能會包含許多的模組,經過編譯後成為一個函式庫,可供應多個專案使用

Crate 函式庫該去哪兒找

剛有說到 Crate 可能會是應用程式執行檔或者是函式庫,且函式庫可被多個專案使用,所以函式庫可以去哪兒找呢?

我們可以到 crates.io 找,裡面放置了許多的函式庫以及套件可供開發者做使用


上一篇
Day 08 Stack and Heap
下一篇
Day 10 Error Handling
系列文
成為程式界的 F1 賽車手,用 30 天認識 Rust 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
Hell Kiki
iT邦新手 4 級 ‧ 2023-09-24 18:59:40

補充一下
cargo run =
cargo build
+ 執行編譯出來的執行檔

所以兩個指令都會產生執行檔喔,不過前提是專案是bin可執行的。

感謝補充 /images/emoticon/emoticon41.gif

我要留言

立即登入留言