【Rust基础入门】Hello Cargo

文章目录

    • 前言
    • Cargo是什么?
    • Cargo的作用
    • 查看cargo版本
    • 使用cargo创建项目
      • Cargo.toml文件
      • cargo build命令
      • cargo run
      • cargo check
      • 为发布构建
    • 总结


前言

在Rust编程中,Cargo扮演着至关重要的角色。它是Rust的包管理器,负责处理许多任务,如构建代码、下载和编译依赖等。本文将介绍Cargo的基本概念和功能,帮助你理解它在Rust编程中的重要性。

Cargo是什么?

Cargo是Rust的包管理器。它的主要任务是管理Rust项目的构建过程,包括代码编译、依赖管理等。Cargo会下载你的Rust包的依赖项,编译你的包,生成可分发的包,并将它们上传到crates.io,这是Rust社区的包注册表。

Cargo的作用

Cargo的主要作用是简化和标准化Rust项目的构建和管理过程。以下是Cargo的一些主要功能:

  • 依赖管理:Cargo可以自动下载和编译你的Rust项目所需的所有依赖。
  • 构建和测试:Cargo提供了一种简单的方式来构建你的代码和运行测试。
  • 生成文档:Cargo可以为你的代码生成文档。
  • 发布:当你准备好发布你的库时,Cargo可以帮助你将其上传到crates.io。

查看cargo版本

使用这个命令即可查看:cargo --verison
在这里插入图片描述

使用cargo创建项目

使用这个命令即可创建:cargo new yourprojectname
在这里插入图片描述
在这里插入图片描述

Cargo.toml文件

Cargo.toml是Rust项目的清单文件,它存储了项目的所有信息。这个文件是用TOML格式编写的,包含了编译包所需的元数据。以下是Cargo.toml的一些主要组成部分:

  • cargo-features:只能用于nightly版本的特性。
  • [package]:定义项目的元信息,如项目名称、版本、开发者等。
  • [dependencies]:项目依赖的包。
  • [dev-dependencies]:用于examples、tests和benchmarks的依赖包。
  • [build-dependencies]:用于构建脚本的依赖包。
  • [target]:平台特定的依赖包。
  • [badges]:用于在注册服务(例如crates.io)上显示项目的一些状态信息¹。
  • [features]:可以用于条件编译。
  • [patch]:推荐使用的依赖覆盖方式。
  • [replace]:不推荐使用的依赖覆盖方式(已弃用)。
  • [profile]:编译器设置和优化。
  • [workspace]:工作空间的定义。

cargo build命令

cargo build命令是生成项目的可执行文件的
在这里插入图片描述
在文件夹里面就会来一个target文件夹,在里面的debug可以找到我们的可执行文件
在这里插入图片描述

cargo run

cargo run会进行编译代码,然后运行可执行文件
在这里插入图片描述

cargo check

cargo check他是检查代码的确保他能编译通过,他不编译代码

为发布构建

cargo build --release他是为我们发布程序时使用的命令

总结

Cargo是Rust编程的重要工具,它简化了许多编程任务,使得开发者可以专注于代码的编写。通过Cargo,我们可以轻松地管理依赖、构建和测试代码、生成文档以及发布库。理解和掌握Cargo的使用,对于Rust编程来说是非常重要的。希望这篇文章能帮助你理解Cargo的基本概念和功能,为你的Rust编程之旅提供帮助。祝你学习愉快!

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

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

相关文章

将ldd命令移植到32位Arm开发板

将ldd命令移植到Arm开发板 今天开发过程中要查看arm开发板上一个可执行文件的依赖库,调用ldd命令,发现板子上没有,就想移植一个过来,在网上查阅了资料发现ldd不是一个二进制可执行文件,而是一个shell脚本文件&#xf…

阿里云云效流水线打包完流程

实现流程 新建流水线 配置代码地址 Node.js 构建 主机部署 1. 新建流水线 1.1 打开云效,找到流水线 立即新建: 选择模版或者创建空流水线 2.配置代码地址 选择代码源,阿里云的话就选择codeup即可 服务连接,主要是你自己的云效服…

【TB作品】51单片机 Proteus仿真 00002仿真-智能台灯色调倒计时光强

实验报告:基于51单片机的智能台灯控制系统 背景 本实验旨在设计一个基于51单片机的智能台灯控制系统,该系统可以通过按键进行手动控制,并能根据环境光强度自动调节台灯亮度。此外,系统还具备倒计时关灯功能。 器件连接 51单片…

软件运维服务方案(Word原件2024)

软件运维服务方案(Word原件) 1. 服务简述 我们提供全面的软件运维服务,确保软件系统的稳定运行。 1.1 服务内容 包括监控、维护、故障排查与优化。 1.2 服务方式 结合远程与现场服务,灵活响应客户需求。 1.3 服务要求 高效响应&am…

双向DFS——AcWing 171. 送礼物

双向DFS 定义 双向深度优先搜索(Bi-directional Depth First Search, BD-DFS)是一种在图或树中寻找两点间路径的算法。与传统的单向DFS不同,BD-DFS同时从起始节点和目标节点出发进行搜索,使用两个DFS过程。一个向前探索从起点到…

从一个(模型设计的)想法到完成模型验证的步骤

从有一个大型语言模型(LLM)设计的想法到完成该想法的验证,可以遵循以下实践步骤: 需求分析: 明确模型的目的和应用场景。确定所需的语言类型、模型大小和性能要求。分析目标用户群体和使用环境。 文献调研&#xff1a…

【C++】类型擦除 + 工厂模式,告别 if-else

文章目录 一、使用std::variant和std::visit二、使用虚函数三、使用工厂模式管理第三方库的Msg四、尾随逗号1.初始化列表2.枚举3.数组4.结构体或类的成员初始化列表 参考 需求点:假设一个第三方库有提供了很多Msg类,这些Msg类都提供了固定的一个成员函数…

swiftui中常用组件picker的使用,以及它的可选样式

一个可选项列表就是一个picker组件搞出来的,它有多个样式可以选择,并且可以传递进去一些可选数据,有点像前端页面里面的seleted组件,但是picker组件的样式可以更多。可以看官方英文文档:PickerStyle | Apple Developer…

【对接支付宝支付详细流程】

下面示例使用的是支付宝的网页支付,最终的效果如图: 1.前置条件 对接支付宝你需要了解的知识点 1.加密算法 对称加密和非对称加密,RSA2加密算法,签名验证 2.支付宝平台openid unionId的概念 https://opendocs.alipay.com/pre…

文件管理下:文件函数的学习

前言 Hello,小伙伴们你们的作者君又来了,上次我们简单介绍了文件的坐拥并简单提到了数据的读取,和C语言的默认流的作用,今天我将继续带领大家探索文件的奥秘,大家准别好了吗? 在内容开始之前还是按照惯例&#xff0c…

初识java—jdk17的一些新增特性

文章目录 前言一 : yield关键字二 :var关键字三 :密封类四 :空指针异常:五:接口中的私有方法:六:instanceof关键字 前言 这里介绍jdk17相对于jdk1.8的部分新增特性。 一 &#xff…

QT使用QGraphicsView绘图 重写QGraphicsObject类实现点在QPainterPath路径上移动动画效果

闲谈:眨眼间,2024年就过去了一半了,年前定下的计划一个都没完成,乘着有空,把之前学习的内容和示例先总结了。 目录 导读SVG 转QPainterPath 路径获取QPainterPath指定长度时的坐标。重写QGraphicsObject类 实现点图元Q…

stm32精密控制步进电机(基础篇)

众所周知,步进电机由于使用脉冲控制,会比直流电机的控制稍难一些,但开环控制时也更加稳定。 落到做项目的时候,目前来说我都会先考虑步进电机,再去考虑直流,无刷这样的电机。包括毕设时所用的机械臂也是用…

并发处理 优先图和多重图

优先图(Precedence Graph)视图可串性多重图(Polygraph) 优先图(Precedence Graph) 优先图用于冲突可串性的判断。 优先图结构&#xff1a; 结点 (Node)&#xff1a;事务&#xff1b;有向边 (Arc): Ti → Tj &#xff0c;满足 Ti <s Tj&#xff1b; 存在Ti中的操作A1和Tj…

开源全新H5充值系统源码/自定义首页+充值页面/灵活对接上游渠道接口

开源全新H5充值系统源码&#xff0c;系统基于thinkphp框架开发&#xff0c;功能已全完善&#xff0c;可灵活对接其他上游渠道接口&#xff0c;默认对接了大猿人接口&#xff0c;另外可无限制自定义创建充值页面&#xff0c;首页支持后台自定义修改&#xff0c;支持三级分销&…

史上最全的自抗扰控制(ADRC)学习资料

史上最全的自抗扰控制&#xff08;ADRC&#xff09;学习资料 需要的私信我~ 需要的私信我~ 需要的私信我~ ​ 本文将作者近些年来学习ADRC算法的学习资料进行汇总&#xff0c;整理了这一版相对较全的学习资料&#xff0c;包含参考文献以及仿真案例&#xff0c;适合初学者入门&…

6、Redis系统-数据结构-05-整数

五、整数集合&#xff08;Intset&#xff09; 整数集合是 Redis 中 Set 对象的底层实现之一。当一个 Set 对象只包含整数值元素&#xff0c;并且元素数量不大时&#xff0c;就会使用整数集合这个数据结构作为底层实现。整数集合通过紧凑的内存布局和升级机制&#xff0c;实现了…

ECharts 饼图:数据可视化的重要工具

ECharts 饼图&#xff1a;数据可视化的重要工具 引言 在数据分析和可视化的领域&#xff0c;ECharts 是一个广受欢迎的开源库。它由百度团队开发&#xff0c;用于在网页中创建交互式图表。ECharts 提供了多种图表类型&#xff0c;包括柱状图、折线图、散点图等&#xff0c;而…

【学习笔记】Redis学习笔记——第7章 压缩列表

第7章 压缩列表 ZipList&#xff1a;只包含少量小整数与短字符串。 7.1 压缩列表的构成 1>zlbytes&#xff1a;记录整个压缩列表占用内存字节数 2>zltail&#xff1a;尾结点距起始地址多少个字节数 3>zllen&#xff1a;节点数&#xff0c;若节点数超出两个字节所能…

HiAI Foundation开发平台,加速端侧AI应用的智能革命

如果您是一名开发者&#xff0c;正在寻找一种高效、灵活且易于使用的端侧AI开发框架&#xff0c;那么HarmonyOS SDKHiAI Foundation服务&#xff08;HiAI Foundation Kit&#xff09;就是您的理想选择。 作为一款AI开发框架&#xff0c;HiAI Foundation不仅提供强大的NPU计算能…