Cargo 教程

Cargo 是什么

Cargo 是 Rust 的構(gòu)建系統(tǒng)和包管理器。

Rust 開發(fā)者常用 Cargo 來管理 Rust 工程和獲取工程所依賴的庫。在上個(gè)教程中我們曾使用 cargo new greeting 命令創(chuàng)建了一個(gè)名為 greeting 的工程,Cargo 新建了一個(gè)名為 greeting 的文件夾并在里面部署了一個(gè) Rust 工程最典型的文件結(jié)構(gòu)。這個(gè) greeting 文件夾就是工程本身。

Cargo 功能

Cargo 除了創(chuàng)建工程以外還具備構(gòu)建(build)工程、運(yùn)行(run)工程等一系列功能,構(gòu)建和運(yùn)行分別對應(yīng)以下命令:

cargo build 
cargo run

Cargo 還具有獲取包、打包、高級構(gòu)建等功能,詳細(xì)使用方法參見 Cargo 命令。

在 VSCode 中配置 Rust 工程

Cargo 是一個(gè)不錯(cuò)的構(gòu)建工具,如果使 VSCode 與它相配合那么 VSCode 將會(huì)是一個(gè)十分便捷的開發(fā)環(huán)境。

在上一章中我們建立了 greeting 工程,現(xiàn)在我們用 VSCode 打開 greeting 文件夾(注意不是 nhooo-greeting)。

打開 greeting 之后,在里面新建一個(gè)新的文件夾 .vscode (注意 vscode 前面的點(diǎn),如果有這個(gè)文件夾就不需要新建了)。在新建的 .vscode 文件夾里新建兩個(gè)文件 tasks.json 和 launch.json,文件內(nèi)容如下:

tasks.json  文件

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

launch.json 文件(適用在 Windows 系統(tǒng)上)

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

launch.json 文件(適用在 Linux 系統(tǒng)上)

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

launch.json 文件(適用在 Mac OS 系統(tǒng)上)

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

然后點(diǎn)擊 VSCode 左欄的 "運(yùn)行"。

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

如果使用的是 MinGW 且安裝了 GDB 選擇"(gdb)啟動(dòng)",gdb 啟動(dòng)前請注意填寫 launch.json 中的 "miDebuggerPath"。

圖片.png

程序就會(huì)開始調(diào)試運(yùn)行了。運(yùn)行輸出將出現(xiàn)在"調(diào)試控制臺"中:

圖片.png

在 VSCode 中調(diào)試 Rust

調(diào)試程序的方法與其它環(huán)境相似,只需要在行號的左側(cè)點(diǎn)擊紅點(diǎn)就可以設(shè)置斷點(diǎn),在運(yùn)行中遇到斷點(diǎn)會(huì)暫停,以供開發(fā)者監(jiān)視實(shí)時(shí)變量的值。

圖片.png

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清