在这里插入图片描述

0 引入

上一节我们谈了在编译工程的时候用到Cargo(卡狗)


1、Cargo 是什么

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

  • Rust 开发者常用 Cargo 来管理 Rust 工程和获取工程所依赖的库。
  • 在上个教程中我们曾使用 cargo new greeting 命令创建了一个名为 greeting 的工程,Cargo 新建了一个名为
    test的文件夹并在里面部署了一个 Rust 工程最典型的文件结构。这个 test文件夹就是工程本身。
  • Cargo 还具有获取包、打包、高级构建等功能,详细使用方法参见 Cargo 命令。

2、常用Cargo指令

指令说明
cargo bulid编译工程
cargo run运行工程
cargo clippy:类似eslint,lint工具检查代码可以优化的地方
cargo fmt类似go fmt,代码格式化
cargo tree查看第三方库的版本和依赖关系
cargo bench:运行benchmark(基准测试,性能测试)
cargo udeps(第三方)检查项目中未使用的依赖
cargo clean删除工程中间文件

3、VScode配置Rust环境

  1. Cargo 是一个不错的构建工具,如果使 VSCode 与它相配合那么 VSCode 将会是一个十分便捷的开发环境。
  2. 在上一章中我们建立了 test工程,现在我们用 VSCode 打开 test文件夹(注意不是 runoob-test)。
  3. 打开 test之后,在里面新建一个新的文件夹 .vscode (注意 vscode 前面的点,如果有这个文件夹就不需要新建了)。在新建的.vscode 文件夹里新建两个文件 tasks.json 和 launch.json,文件内容如下;
  4. 然后点击 VSCode 左栏的 “运行”。
    如果你使用的是 MSVC 选择 “(Windows) 启动”。
    如果使用的是 MinGW 且安装了 GDB 选择"(gdb)启动",gdb 启动前请注意填写 launch.json 中的 “miDebuggerPath”。
    在这里插入图片描述
    这样就可以断点去执行每一步程序了,很方便。

3.1.tasks.json

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

3.2.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 
                } 
            ] 
        } 
    ] 

4、总结

cargo这个工具很有用,在其他如linux或者Mac系统中都有相应的例子,这里做过多描述。


Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐