1. 程式人生 > >Rust 每日千行之旅<0>:源代碼組織,Cargo 入門

Rust 每日千行之旅<0>:源代碼組織,Cargo 入門

最終 項目目錄 div zsh span org rust logs ack

Rust 源代碼組織,使用配套的 Cargo 工具,其功能強大,程序員可擺脫 C/C++ 中需要自行維護 make、cmake 之類配置的工作量。

初始化一個項目:

cargo new --bin hello_world

指定 --bin 選項代表創建的是一個直接可執行的二進制項目,否則會生成一個庫項目。

執行 cargo run && cargo run --release 之後,項目目錄結構如下:

<fh@z:~/projects/hello_world>
zsh/3 114  (git)-[master]-% tree 
.
├── Cargo.lock
├── Cargo.toml
├── src
│   └── main.rs
└── target
    ├── debug
    │   ├── build
    │   ├── deps
    │   │   └── hello_world
-f745b285e01df5ca │ ├── examples │ ├── hello_world │ ├── hello_world.d │ ├── incremental │ └── native └── release ├── build ├── deps │ └── hello_world-7399f171987fdf9d ├── examples ├── hello_world ├── hello_world.d ├── incremental └── native

生成的二進制文件位於項目路徑下的 target/debug 或 target/release 子目錄中,--release 指生成編譯優化版的二進制文件,類似於 C 語言開啟 -O2 優化選項。

其中 Cargo.toml 是 Cargo 用來管理項目結構的配置文件,其初始內容如下:

<fh@z:~/projects/hello_world>
zsh/3 116  (git)-[master]-% cat Cargo.toml 
[package]
name = "hello_world"
version = "0.1.0"
authors = ["kt <[email protected]>
"] [dependencies]

____

註:rust 生成的最終可執行文件,都是無外部依賴的靜態編譯結果。

Rust 每日千行之旅<0>:源代碼組織,Cargo 入門