天天看點

rust hello-world項目建立與編譯運作

作者:經濟學人v

項目建立

我們可以使用cargo new hello來建立一個hello項目,如下:

$ cargo new hello
Created binary (application) `hello` package
$            
rust hello-world項目建立與編譯運作

使用idea打開該項目(idea運作rust需要安裝rust插件,這裡不再詳述),可以看到如下目錄結構:

rust hello-world項目建立與編譯運作

其中Cargo.toml描述了項目的相關資訊,Cargo.lock用于管理項目的依賴關系,這兩個檔案我們暫時不用關注。我們主要看src/main.rs檔案,這是我們實際寫代碼的地方。

編譯運作

打開main.rs檔案,發現cargo自動生成的内容如下:

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

我們可以使用cargo build指令對代碼進行編譯,如下:

$ cargo build
   Compiling hello v0.1.0 (~/IdeaProjects/hello)
    Finished dev [unoptimized + debuginfo] target(s) in 0.83s           

在項目下就會生成一個target目錄,如下:

rust hello-world項目建立與編譯運作

并且我們可以看到target/debug目錄下生成了一個名為hello的二進制檔案:

rust hello-world項目建立與編譯運作

我們可以直接執行這個檔案,如下:

$ target/debug/hello
Hello, world!           

至此,我們就成功完成了編譯運作,開心鼓掌~

rust hello-world項目建立與編譯運作

當然了,我們也可以用更簡單的方式,就是用idea自己的運作功能來運作代碼。idea會自動幫我們執行上面的那些指令來完成代碼的編譯與運作。

rust hello-world項目建立與編譯運作

idea使用的指令是cargo run,這個指令是cargo build和運作二進制檔案的結合體。

release版本編譯

注意到我們上面執行cargo build的時候,打出了這樣一個資訊:

[unoptimized + debuginfo] targets           

這個表示的是這個編譯是未經過優化的,攜帶了很多debug資訊,運作起來會慢點,我們可以選擇進行優化版本的編譯,就是正式釋出版本的編譯,可以在cargo build之後加上--release來實作這個功能,如下:

$ cargo build --release
   Compiling hello v0.1.0 (~/IdeaProjects/hello)
    Finished release [optimized] target(s) in 0.61s           

可以看到那個資訊變成了[optimized]。同時呢,在target目錄下,我們會發現多了一個release目錄:

rust hello-world項目建立與編譯運作

同樣,我們運作target/release/hello,會看到結果正常輸出:

$ target/release/hello
Hello, world!           

好了,關于rust hello-world項目建立與編譯運作的分享到這。

如果對rust感興趣的話,想要一起學習的話,别忘記收藏、關注、轉發哦,也可以随時留言評論提問,大家一起交流進步,謝謝~