codecamp

Cargo 教程

 Cargo 是什么

Cargo​ 是 ​Rust ​的构建系统和包管理器。

Rust​ 开发者常用 ​Cargo​ 来管理 ​Rust​ 工程和获取工程所依赖的库。在上个教程中我们曾使用​ cargo new greeting​ 命令创建了一个名为 ​greeting​ 的工程,​Cargo ​新建了一个名为 ​greeting ​的文件夹并在里面部署了一个 ​Rust ​工程最典型的文件结构。这个 greeting 文件夹就是工程本身。

Cargo 功能

作为rust的代码组织管理工具,cargo提供了一系列的工具,从项目的建立、构建到测试、运行直至部署,为rust项目的管理提供尽可能完整的手段。同时,与rust语言及其编译器rust本身的各种特性紧密结合。

cargo build 
cargo run 

Cargo ​还具有获取包、打包、高级构建等功能,详细使用方法参见 ​Cargo ​命令。

在 VSCode 中配置 Rust 工程

Cargo ​是一个不错的构建工具,如果使 ​VSCode ​与它相配合那么 ​VSCode ​将会是一个十分便捷的开发环境。

在上一章中我们建立了 ​greeting ​工程,现在我们用 ​VSCode ​打开 ​greeting ​文件夹(注意不是 w3cschool-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",
            "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

调试程序的方法与其它环境相似,只需要在行号的左侧点击红点就可以设置断点,在运行中遇到断点会暂停,以供开发者监视实时变量的值。


Rust 环境搭建
Rust 输出到命令行
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }