Cargo 教程
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 文件夹(
注意不是 yssmx-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 文件(适用在 Linux 系统上)
{
"
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"。
程序就会开始调试运行了。运行输出将出现在"调试控制台"中:
在 VSCode 中调试 Rust
调试程序的方法与其它环境相似,只需要在行号的左侧点击红点就可以设置断点,在运行中遇到断点会暂停,以供开发者监视实时变量的值。