rust安裝&入門

1. linux&macos安裝rust

安裝

curl https://sh.rustup.rs -sSf | sh
這將會安裝rustc, rustup, rustfmt, cargo 等等程序

環境變量

手動將 Rust 加入系統 PATH 變量中:

source $HOME/.cargo/env 

或者可以在 ~/.bash_profile 文件中增加如下行:

export PATH="$HOME/.cargo/bin:$PATH"

測試

> rustc --version
rustc 1.39.0 (4560ea788 2019-11-04)

2. hello world

fn main() {
    println!("Hello, world!");
}

編譯&運行

> rustc main.rs
> ./main
Hello, world!

3. 初步分析hello world代碼

1,宏:println! 調用了一個 Rust 宏(macro)。如果是調用函數,則應輸入 println(沒有!)
2,函數用fn定義
3,以分號結尾
4,編譯後的二進制包很大2.5M

-rwxrwxrwx. 1 vagrant vagrant 2.5M Dec 17 10:10 main
-rwxrwxrwx. 1 vagrant vagrant   45 Dec 17 10:15 main.rs

4. cargo

構建系統和包管理器

> cargo new cargo 
> cd cargo
> cargo build
   Compiling cargo v0.1.0 (/vagrant/rust/cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 1.45s
> ./target/debug/cargo
Hello, world!

cargo build會使 Cargo 在項目根目錄創建一個新文件:Cargo.lock。這個文件記錄項目依賴的實際版本。自己永遠也不需要碰這個文件,讓 Cargo 處理它就行。
構建結果放在target/debug目錄並緩存,再次構建時如果源文件沒有修改,且編譯結果已經緩存,則不用重新構建。

> cat Cargo.lock
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "cargo"
version = "0.1.0"

cargo run

同時編譯並運行生成的可執行文件,如果發現程序編譯過,且有沒有修改,則不用重新編譯

> cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.11s
     Running `target/debug/cargo`
Hello, world!
> rm -rf  target
> cargo run
   Compiling cargo v0.1.0 (/vagrant/rust/cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 1.21s
     Running `target/debug/cargo`
Hello, world!

cargo check

執行編譯前的檢查,速度會比構建快一些,主要是省略了生成可執行文件的步驟

> cargo check
    Checking cargo v0.1.0 (/vagrant/rust/cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 0.67s

額外的優點

不管你使用什麼操作系統,cargo的命令都是一樣的。

5. 發佈

cargo build --release,優化編譯項目,讓rust程序運行的更快,但是需要消耗更長的編譯時間。
優化編譯的構建結果放在./target/release目錄下。

> cargo build --release
   Compiling cargo v0.1.0 (/vagrant/rust/cargo)
    Finished release [optimized] target(s) in 0.96s
> ./target/release/cargo
Hello, world!

6. 參考鏈接

https://kaisery.github.io/trpl-zh-cn/ch01-03-hello-cargo.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章