• 【一起学Rust】Rust包管理工具Cargo初步了解


    在这里插入图片描述

    提示:建议学习完上一节内容再学习本章内容哦,详情请订阅本专栏。

    文章目录


    前言

    上一篇文章我们学习了Rust的Hello World,并对其进行了详细分析,相信你已经学习到了,本节我们将使用Cargo创建一个Hello World,并对其进行详细分析。

    我们上次写的Hello World是最简单的程序,是没有依赖的。想想,如果你在开发大型的项目时,一定会引用到其他的库,或者管理一些文件,进行构建,这时候编译就成了个复杂的问题。Rust官方为我们提供了Cargo来管理这些项目,它可以做到上面提到的一切,使用Cargo进行管理将会使你开发变得更容易,我们以后的开发用到的就全是Cargo了。

    Cargo 是 Rust 的构建系统和包管理器。大多数 Rustacean 们使用 Cargo 来管理他们的 Rust 项目,因为它可以为你处理很多任务,比如构建代码、下载依赖库并编译这些库。

    Rustacean 指的就是电脑面前学习的大佬啦。


    一、使用 Cargo 创建项目

    首先需要检查你的电脑是否安装Cargo,当然,如果你正常安装的话那就必然已经安装上了。

    cargo --version
    
    • 1

    如下返回,就代表安装没有问题,否则建议你重新安装Rust。

    1. 新建项目

    以下命令用来新建一个项目

    cargo new hello_cargo
    
    • 1

    其中hello_cargo是新建项目的名字,运行后如下图就表示创建成功。

    接下来进入刚才创建的项目目录,可以看到目录结构如下,

    │  .gitignore
    │  Cargo.toml
    │
    └─src
            main.rs
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • .gitignore是个git忽略文件列表,在上传到git时,并不是所有文件都要上传到github的。同时这也提醒我们,cargo为我们创建了一个github仓库。
    • Cargo.toml是个项目的配置文件,其中包括项目名,依赖等内容,后面详细介绍。
    • src/main.rs是项目创建好自带的Hello World文件。

    2. 指定版本管理系统

    cargo为我们默认创建了git仓库,因为git是一个常用的管理系统,除此以外,cargo还可以指定版本管理系统,使用 --vcs 参数指定或者切换版本管理系统,如果文件夹已经有了仓库了,那么默认就不会创建仓库了。

    cargo new --vcs=git
    
    • 1

    --vcs的可选项为

    可选项

    git, hg, pijul, fossil, none

    3. Cargo.toml配置文件

    Cargo.toml文件使用的是TOML配置格式,在TOML格式中

    • [section] 称为一个片段标题
    • name = value 的形式配置标题下面的配置项

    项目的配置文件,可以用文本编辑器打开,其中内容如下

    [package]
    name = "hello_cargo"
    version = "0.1.0"
    edition = "2021"
    
    [dependencies]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. [package]是管理当前项目包的信息的
      name 表明了项目名字是hello_cargo
      version表明了项目版本号是0.1.0
      edition 表明了项目使用的Rust版本号
    2. [dependencies]是管理当前项目包的依赖信息的。在 Rust 中,代码包被称为 crates。这个项目并不需要其他的 crate,不过在后面的项目会用到依赖,那时会用得上这个片段。

    二、构建并运行 Cargo 项目

    使用cargo运行程序和我们手动运行程序是不一样的,手动运行程序需要先编译,然后再运行,在cargo里面我们一步就可完成这个操作,cargo自动为我们管理了这个过程。

    1.构建项目

    构建项目使用如下命令,

    cargo build
    
    • 1

    运行后,编译成功如下图,

    此时cargo就为我们编译好了项目,找到hello_cargo argetdebug目录就可以看到我们编译好的可执行文件,这个和我们在命令行执行文件是一样的


    可执行程序运行也是和之前一样的

    Cargo.lock文件

    如果项目编译正常,会生成一个Cargo.lock文件,这个文件记录项目依赖的实际版本。你自己永远也不需要碰这个文件,让 Cargo 处理它就行了。

    2.运行项目

    使用cargo来运行项目,使用以下命令

    cargo run
    
    • 1

    运行效果与我们手动运行是一样的,run会自动执行编译和运行的步骤,我们上面已经编译了,因此这里运行时就不需要再次编译了,cargo就变得很智能。

    再次修改后运行就会有一个编译的过程

    3.检查代码

    Cargo还提供了一个代码检查的工具,该命令快速检查代码确保其可以编译,但并不产生可执行文件:

    cargo check
    
    • 1

    当我们执行后,并没有报错,说明代码没有问题。

    三、发布 Cargo 项目

    发布项目时,我们使用以下命令来优化编译项目,以让 Rust 代码运行的更快,不过启用这些优化也需要消耗更长的编译时间。

    cargo build --release 
    
    • 1
    1. Debug是为了开发,你需要经常快速重新构建;
    2. Release是为用户构建最终程序,它们不会经常重新构建,并且希望程序运行得越快越好。

    最后你可以在target/release下找到最终的可执行文件。


    总结

    我们回顾下已学习的 Cargo 内容:

    1. 可以使用 cargo new 创建项目。
    2. 可以使用 cargo build 构建项目。
    3. 可以使用 cargo run 一步构建并运行项目。
    4. 可以使用 cargo check 在不生成二进制文件的情况下构建项目来检查错误。
    5. 有别于将构建结果放在与源码相同的目录,Cargo 会将其放到 target/debug 目录。

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    【uniapp uview】u--textarea组件custom validator check failed for prop “confirmType“
    竞赛 基于机器视觉的行人口罩佩戴检测
    创业资讯查询易语言代码
    .NET Emit 入门教程:第三部分:构建模块(Module)
    YOLOv8改进算法之添加CA注意力机制
    【SA8295P 源码分析 (三)】82 - SA8295P AIS Camera 模块 硬件原理图分析
    基于java web的学生考勤带请假管理系统——计算机毕业设计
    基于Python实现的语音特征提取声音信号处理
    java程序终端排查
    Java生成Jar包方法
  • 原文地址:https://blog.csdn.net/m0_67391683/article/details/126080705