首頁 > 軟體

Rust中的Cargo構建、執行、偵錯

2022-09-30 14:01:38

基本概念

Cargo是rustup安裝後自帶的,Cargo 是 Rust 的構建系統和包管理器。
Rust 開發者常用 Cargo 來管理 Rust 工程和獲取工程所依賴的庫。入門教學中使用 cargo new helloworld 命令建立了一個名為 helloworld 的工程,Cargo 新建了一個名為 helloworld 的資料夾並在裡面部署了一個 Rust 工程最典型的檔案結構。這個 helloworld 資料夾就是工程本身。

Cargo相關命令

Cargo 除了建立工程以外還具備構建(build)工程、執行(run)工程等一系列功能,具體如下:

#建立—個普通的專案:
cargo new project_name --bin 
#建立一個庫cargo build
cargo new lib_name --lib--vcs none
#構建編譯,預設會編譯到target/debug/project_name下
cargo build
#執行
cargo run
#構建編譯釋出版本,這會做很多優化,並編譯到target/release/project_name下
cargo build --release
#如果你想修改cargo .lock檔案的話,執行它
cargo update
#如果你只是想更新rand版本的話,執行它
cargo update-p rand
#執行test測試
cargo test abc
#檢查程式碼,確保能通過編譯,但不產生執行檔案其速度比cargo build快得多編寫程式碼時可以反覆的使用cargo check檢查程式碼,提高效率。
cargo check

建立工程目錄說明

cargo new helloworld可以建立一個helloword的工程目錄,目錄結構如下:

src下面是程式碼目錄。
target是編譯後的檔案目錄。
.gitignore主要功能是遮蔽某些檔案,使得這些檔案不被追蹤(tracked),自然push後也不會上傳到github等平臺。
Cargo.lock編譯過程中自動生成的 Cargo.lock 檔案,記錄了相關資源資訊,保證我們以後可以重新構建。
Cargo.toml為該工程的組態檔,這個關係類似於: package.json 是 npm 的組態檔。

VSCode 中設定 Rust工程

開啟 helloworld工程目錄 之後,在裡面新建一個新的資料夾 .vscode (注意 vscode 前面的點,如果有這個資料夾就不需要新建了)。在新建的 .vscode 資料夾裡新建兩個檔案 tasks.jsonlaunch.json,檔案內容如下:
tasks.json:

{ 
        "version": "2.0.0", 
        "tasks": [ 
            { 
                "label": "build", 
                "type": "shell", 
                "command":"cargo", 
                "args": ["build"] 
            } 
        ] 
    }

launch.json:

{ 
        "version": "0.2.0", 
        "configurations": [ 
            { 
                "name": "(Windows) 啟動", 
                "preLaunchTask": "build", 
                "type": "cppvsdbg", 
                "request": "launch", 
                "program": "${workspaceFolder}/target/debug/${workspaceFolderBasename}.exe", 
                "args": [], 
                "stopAtEntry": false, 
                "cwd": "${workspaceFolder}", 
                "environment": [], 
                "externalConsole": false 
            }, 
            { 
                "name": "(gdb) 啟動", 
                "type": "cppdbg", 
                "request": "launch", 
                "program": "${workspaceFolder}/target/debug/${workspaceFolderBasename}.exe", 
                "args": [], 
                "stopAtEntry": false, 
                "cwd": "${workspaceFolder}", 
                "environment": [], 
                "externalConsole": false, 
                "MIMode": "gdb", 
                "miDebuggerPath": "這裡填GDB所在的目錄", 
                "setupCommands": [ 
                    { 
                        "description": "為 gdb 啟用整齊列印", 
                        "text": "-enable-pretty-printing", 
                        "ignoreFailures": true 
                    } 
                ] 
            } 
        ] 
    }

偵錯程式的方法與其它環境相似,只需要在行號的左側點選紅點就可以設定斷點,在執行中遇到斷點會暫停,以供開發者監視實時變數的值。

到此這篇關於Rust之Cargo構建、執行、偵錯的文章就介紹到這了,更多相關Rust Cargo構建內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com