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

news2024/11/26 11:46:21

文章目录

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


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Metricbeat安装下载,nginx模块使用

目录 MetricbeatMetricbeat组成下载启动Metricbeat Modulesystem module配置内容 Nginx Module开启Nginx Module 配置nginx module测试 Metricbeat 定期收集操作系统或应用服务的指标数据存储到Elasticsearch中,进行实时分析 Metricbeat组成 Metricbeat有2部分组成…

Jmeter性能测试步骤入门

目录 前言: 一、Jmeter简介 1 概述 2 JMeter支持的协议 二、Jmeter实现性能测试 第一步:配置jdk环境 第二步:下载jmeter 第三步:启动Jmeter 四、一个http还除了上述http请求中的请求行和请求体,还包含请求头&#xff…

Android使用AspectJ拦截点击事件

介绍: AspectJ是一种AOP框架,它可以在编译时或运行时拦截指定的方法。在Android开发中,我们可以使用AspectJ来拦截UI事件并执行自己的业务逻辑。本文将说明如何使用AspectJ来拦截Android应用程序中的点击事件,并附有详细的代码注…

存储池和LUN

存储池是什么意思 存储池是为集体存储共享置备的存储卷的集合。这些池建立在物理存储设备的聚合上,根据资源需求进行隔离,然后由共享环境中的各种计算机或系统使用。存储池可以分为三类,每类都有不同的用途;主存储池、副本存储池和活动数据池…

618来了!看图技术如何在物流管理系统大显身手!

导读 近日,随着电商“618”购物节的临近,各大商家纷纷推出各类补贴活动刺激消费者热情。下单后,消费者的心理活动如何呢?蹲点抢到优惠券,精打细算的凑单后,终于完成付款。焦急的等待待发货的小红点跳至待收…

分享三个java低代码开发平台,每个都很能打,建议收藏!

来讲讲近期比较流行的低代码开发平台一词。低代码的目的是将可重复性的编程工作通过平台实现,将开发人员从没有技术含量的增删改查开发中解放出来,让其专注于更有价值的开发工作,例如业务建模、数据库设计、流程设计、API核心开发、业务逻辑开…

如何调用百度地图API

前言 要调用百度地图API,步骤操作如下 注册并创建一个API密钥。您可以在百度地图API控制台上创建您的密钥。选择要使用的API服务。百度地图API提供了多种服务,包括地图展示、路线规划、地点搜索、实时交通等。您可以在百度地图API控制台上查看所有可用…

大数据hadoop生态技术简介

Hadoop 生态是指围绕 Hadoop 大数据处理平台形成的一系列开源软件和工具,用于支持大规模数据处理、存储、管理、分析和可视化等应用场景。暂时将其核心技术分为9类: 数据采集技术框架: Flume、Logstash、FileBeat;Sqoop和Datax&…

【Spring】循环依赖

一、什么情况下会出现循环依赖? 二、解决方案 (一)一级缓存:存放完整的Bean实例对象 缺点:一级缓存的方式无法保证多线程下的一级缓存Bean的完整性,可以用加锁的方式来解决此问题。 (二&#…

Nerf如何制作自己的llff数据集

Nerf三维重建使用Pycharm运行自己的数据集 ------------------------------------20230427更新---------------------------------------------- Nerf代码讲解,从零简单复现论文代码 Nerf环境配置教程 你好! 这里是“出门吃三碗饭”本人,本…

数字化时代,数据治理中有哪些误区?

数据治理也不是什么简单的事情,或者说企业想要利用数据资产、数字化、数字化转型等加速企业的发展,就势必会在路途中遇到很多困难,数据治理只是用来解决数据问题的一种方案。所以当数据的价值开始被不断挖掘,企业数据资产的地位越…

分析了上百份最新的大中小厂的面经,我总结出了这份2023国内最新最强Java面试八股文

最近分析了上百份最新的大中小厂的面经,整理了 Java 面试中最最最常问的一些问题!大家可以对照着这篇文章学习或者准备面试。 开始之前,先说一下我非常推荐的一种学习方式: 带着问题学习或者准备面试。 之前分享过一位字节朋友的…

数据预处理:标准化、正则化、最大最小归一化、绝对值标准化

https://scikit-learn.org/stable/modules/preprocessing.html 标准化 公式 : 优点:适用大多数类型的数据,标准化之后的数据是以0为均值,方差为1的正态分布 缺点 :是一种中心化方法,会改变原有数据得分…

《离散数学》:集合、关系和函数

〇、前言 这章将会对集合、以及集合之上的关系、以及两个集合之间的映射情况做一个细致的讨论。集合作为数学和其他领域中的基础概念,具有广泛的应用和重要的地位。它为数学建立了基本的体系和推理方法,为各个领域的研究和应用提供了一种统一的描述和分…

DDD领域驱动

为什么需要DDD? 我们经常讲技术为业务服务,架构设计需要对业务充分理解,在面向复杂的业务场景时,会面临诸多问题: 复杂系统设计:业务系统多、业务类型多、业务相互耦合,有没有合适的方法来指导…

深度分析高性能计算工程师和传统互联网开发有何不同?

数字化时代来袭,各类开发工程师层出不穷。在移动互联网时代,互联网开发享用了10年的行业红利;在即将到来的超算互联网时代、数字化浪潮汹涌而来的时代,高性能计算工程师这个原本在科研院所熠熠生辉的工程师群体也从技术的神坛走下…

刁钻面试问题?超全接口测试面试题总结+答案,面试看这篇就够了

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 面试题&#xff1…

通过Xshell连接远程服务器搞懂SSH非对称加密的实际应用

最近阿里云服务器即将到期,正好618入手了腾讯云很便宜的轻量级服务器,之前阿里云服务器远程控制都是用Xshell密码登录,这次腾讯云试了试SSH免密登录,还是很好用的,正好借这个机会研究了下SSH原理 SSH是“非对称加密”…

在做性能测试时会遇到的瓶颈

针对网络瓶颈,现在冒似很少,不过也不是没有,首先想一下如果有网络的阻塞,断网,带宽被其他资源占用,限速等情况,应用程序或系统会是什么情况,针对WEB,无非是超时&#xff…

【ros2】ros2环境安装与基础入门

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍ros2环境安装与基础入门。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷…