Cargo 教程介紹

大雄45發表於2021-10-07
導讀 Cargo 是 Rust 的構建系統和包管理器。Rust 開發者常用 Cargo 來管理 Rust 工程和獲取工程所依賴的庫。
Cargo 是什麼

Cargo 是 Rust 的構建系統和包管理器。

Rust 開發者常用 Cargo 來管理 Rust 工程和獲取工程所依賴的庫。在上個教程中我們曾使用 cargo new greeting  建立了一個名為 greeting 的工程,Cargo 新建了一個名為 greeting 的資料夾並在裡面部署了一個 Rust 工程最典型的檔案結構。這個 greeting 資料夾就是工程本身。

Cargo 功能

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

cargo build 
cargo run

Cargo 還具有獲取包、打包、高階構建等功能,詳細使用方法參見 Cargo 命令。

在 VSCode 中配置 Rust 工程

Cargo 是一個不錯的構建工具,如果使 VSCode 與它相配合那麼 VSCode 將會是一個十分便捷的開發環境。

在上一章中我們建立了 greeting 工程,現在我們用 VSCode 開啟 greeting 資料夾(注意不是 runoob-greeting)。

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

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

launch.json 檔案(適用在 Windows 系統上)

{ 
    "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 
                } 
            ] 
        } 
    ] 
}

launch.json 檔案(適用在   系統上)

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug",
            "type": "gdb",
            "preLaunchTask": "build",
            "request": "launch",
            "target": "${workspaceFolder}/target/debug/${workspaceFolderBasename}",
            "cwd": "${workspaceFolder}"
        }
    ]
}

launch.json 檔案(適用在 Mac OS 系統上)

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(lldb) 啟動",
            "type": "cppdbg",
            "preLaunchTask": "build",
            "request": "launch",
            "program": "${workspaceFolder}/target/debug/${workspaceFolderBasename}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb"
        }
    ]
}

然後點選 VSCode 左欄的 "執行"。

如果你使用的是 MSVC 選擇 "(Windows) 啟動"。

如果使用的是 MinGW 且安裝了 GDB 選擇"(gdb)啟動",gdb 啟動前請注意填寫 launch.json 中的 "miDebuggerPath"。
Cargo 教程介紹Cargo 教程介紹
程式就會開始除錯執行了。執行輸出將出現在"除錯控制檯"中:
Cargo 教程介紹Cargo 教程介紹

在 VSCode 中除錯 Rust

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

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2794807/,如需轉載,請註明出處,否則將追究法律責任。

相關文章