Rust语言从入门到入坑——(3)小谈Cargo工具以及VScode配置Rust

文章目录

  • 0 引入
  • 1、Cargo 是什么
  • 2、常用Cargo指令
  • 3、VScode配置Rust环境
    • 3.1.tasks.json
    • 3.2.launch.json
  • 4、总结


在这里插入图片描述

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系统中都有相应的例子,这里做过多描述。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/28901.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI翻唱整合

感谢阅读 不完全原创声明环境部署下载工具包安装人声背景音分离工具分离消除脏数据(比如杂音)准备自己的声音预处理完工效果参考 不完全原创声明 本人使用了多个第三方软件,并修改了一部分代码使得其可以在PC上训练,如有侵权请联…

《项目实战》构建SpringCloud alibaba项目

文章目录 1、概要2、整体架构流程2.1、技术结构组成部分 3、技术名词解释4、技术细节4.1、构建父工程4.1.1、选择构建Maven项目4.1.2、修改父工程文件4.1.3、修改父工程pom.xml配置4.1.3.1、添加springboot支持4.1.3.2、修改JDK版本、编码、springboot版本配置4.1.3.3、添加Spr…

完美解决 RabbitMQ 可视化界面中 Overview 不显示图形的问题

💧 记录一下今天遇到的 b u g \color{#FF1493}{记录一下今天遇到的bug} 记录一下今天遇到的bug💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的博客🎐 🐳 数据结构与算法…

拷贝构造函数

拷贝构造函数 以值传递的方式调用函数时,如果实参为对象,会调用拷贝构造函数。函数以值的方式返回对象时,可能会调用拷贝构造函数(VS会调用,Linux不会,g编译器做了优化)浅拷贝存在的问题 类似于…

反射---getattr,hasattr,setattr,delattr加插播enumerate

什么是反射? 用字符串数据类型的变量名来访问这个变量的值 反射的方法:getattr,hasattr,setattr,delattr 类:(通过类名反射类名空间里面的内容的) 类:静态属性,类方法,静…

【python】flask+pymysql 实现Web端操作数据库!

Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。 Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用…

Qt5.15.10+msvc2019_x86+qwebengine(含mp4)源码编译

系统要求: win10 64bit 英文版(或者把“区域”->“管理”->“非Unicode程序中所使用的当前语言”->改为"英语(美国)") 内存16g够用,cpu性能越高越好,硬盘在安装环境、下载源码后,至少还有100g可用空间 下载源码: https://download.qt.io/archiv…

大话设计模式之——单例模式

单例(Singleton) Intent 确保一个类只有一个实例,并提供该实例的全局访问点。 Class Diagram 使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。 私有构造函数保证了不能通过构造函数来创建对象实例,只能…

Python零基础入门(二)——IDE介绍以及Python+PyCharm的安装

系列文章目录 个人简介:机电专业在读研究生,CSDN内容合伙人,博主个人首页 Python入门专栏:《Python入门》欢迎阅读,一起进步!🌟🌟🌟 码字不易,如果觉得文章不…

路径规划算法:基于适应度相关优化的路径规划算法- 附代码

路径规划算法:基于适应度相关优化的路径规划算法- 附代码 文章目录 路径规划算法:基于适应度相关优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能…

Unity基础4——LineRenderer

一、参数面板 二、参数介绍 Loop:是否首尾相连 Positions:线段的点 Width:线段宽度曲线的调整 Color:颜色变化 需要搭配材质才有效果 Corner Vertices:角顶点、圆角 此属性指,在一条线中绘制角时使用了…

一文读懂功率信号源(信号发生器)

功率信号源是一种用于产生高功率信号的电子设备,它广泛应用于各个领域,在生产、测试和调试中起着重要的作用。下面就让安泰将介绍功率信号源的基本概念、工作原理、分类以及应用。 功率信号源是一种能够产生稳定输出功率的设备。它通常由一个稳压电源和一…

红帽认证常见答疑(二):电脑配置、实验环境和考试环境、可以自学吗

学习红帽需要配置什么样的电脑? RHCE推荐学员自己的电脑内存在16G左右,RHCA推荐学员电脑内存在32-64G,且最好配置128G以上的固态硬盘,如果自己没有该配置的电脑,誉天可以提供远程学习环境,可以随时随地连接…

Java实现的五子棋游戏 ~java.awtjava.swing

文章目录 Java实现的五子棋游戏1.实现效果2.实现源码2.1运行主函数main.java2.2 棋盘布局Chessboard.java3.Algorithm算法 点击下载链接:Java实现的五子棋游戏源码下载 Java实现的五子棋游戏 作业要求: (1)课题代号: …

【裸机开发】使用汇编清除 .bss 段

目录 1、为什么要清除 .bss 段 2、使用汇编清除 .bss 段 1、为什么要清除 .bss 段 .bss 段保存的是 未被初始化 或者 初始化为0 的全局/静态变量。在编译器看来,这些东西是多余的,实际并不会给他们分配空间。因此,编译生成目标文件的时候&…

提升安全性与合规性的关键工具ADAudit Plus

在当今数字化时代,企业对于安全性和合规性的要求越来越高。特别是在Active Directory(AD)域中,作为组织的核心身份验证和访问管理系统,审计活动的重要性变得前所未有。为了满足这一需求,ADAudit Plus成为了…

A Survey of Large Language Models

本文是LLM系列的第一篇文章,针对《A Survey of Large Language Models》的翻译。 大语言模型综述 摘要1 引言2 概述2.1 LLM的背景2.2 GPT系列模型 的技术演化 3 LLMs的资源3.1 公开可用的模型检查点或APIs3.2 常用的语料库3.3 库资源 4 预训练4.1 数据收集4.1.1 数…

深入剖析 Python 函数参数传递机制及高级应用

前言 在本篇文章中,笔者将带你深入探讨 Python 函数传参的进阶主题。 通过阅读本篇文章,你可以深入了解 Python 函数传参的进阶主题,掌握更多高级的函数技巧,提升你的 Python 编程能力。 前面分享了Python 函数传参基础篇&#xf…

嵌入式Linux应用开发笔记:串口

文章目录 目的基础说明开发准备设备树应用程序 应用程序与演示代码演示 总结设备树文件 目的 串口(UART)是嵌入式设备中比较常用的功能。这篇文章将记录下应用程序中串口操作相关内容。 这篇文章中内容均在下面的开发板上进行测试: 《新唐N…

中介者模式(二十一)

相信自己,请一定要相信自己 上一章简单介绍了观察者模式(二十), 如果没有看过, 请观看上一章 一. 中介者模式 引用 菜鸟教程里面中介者模式介绍: https://www.runoob.com/design-pattern/mediator-pattern.html 中介者模式(Mediator Pattern&#xff…