Cargo 是 Rust 的構(gòu)建系統(tǒng)和包管理器。
Rust 開發(fā)者常用 Cargo 來管理 Rust 工程和獲取工程所依賴的庫。在上個教程中我們曾使用 cargo new greeting 命令創(chuàng)建了一個名為 greeting 的工程,Cargo 新建了一個名為 greeting 的文件夾并在里面部署了一個 Rust 工程最典型的文件結(jié)構(gòu)。這個 greeting 文件夾就是工程本身。
Cargo 除了創(chuàng)建工程以外還具備構(gòu)建(build)工程、運行(run)工程等一系列功能,構(gòu)建和運行分別對應(yīng)以下命令:
cargo build cargo run
Cargo 還具有獲取包、打包、高級構(gòu)建等功能,詳細(xì)使用方法參見 Cargo 命令。
Cargo 是一個不錯的構(gòu)建工具,如果使 VSCode 與它相配合那么 VSCode 將會是一個十分便捷的開發(fā)環(huán)境。
在上一章中我們建立了 greeting 工程,現(xiàn)在我們用 VSCode 打開 greeting 文件夾(注意不是 nhooo-greeting)。
打開 greeting 之后,在里面新建一個新的文件夾 .vscode (注意 vscode 前面的點,如果有這個文件夾就不需要新建了)。在新建的 .vscode 文件夾里新建兩個文件 tasks.json 和 launch.json,文件內(nèi)容如下:
{
????"version":?"2.0.0",
????"tasks":?[
????????{
????????????"label":?"build",
????????????"type":?"shell",
????????????"command":"cargo",
????????????"args":?["build"]
????????}
????]
}{
????"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":?[],
????????????"console":?false
????????},
{
????????????"name":?"(gdb)?啟動",
????????????"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
????????????????}
????????????]
????????}
????]
}{
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"type": "gdb",
"preLaunchTask": "build",
"request": "launch",
"target": "${workspaceFolder}/target/debug/${workspaceFolderBasename}",
"cwd": "${workspaceFolder}"
}
]
}{
"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"。

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

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