Rust学习日记(一)Cargo的使用

news2024/11/26 10:35:39

前言:
这是一个系列的学习笔记,会将笔者学习Rust语言的心得记录。
当然,这并非是流水账似的记录,而是结合实际程序项目的记录,如果你也对Rust感兴趣,那么我们可以一起交流探讨,使用Rust来构建程序。

注:本文中使用Rust都是在windows环境下,如果是macOS或者linux,其指令或有不同,请注意。

Cargo的定义及使用

在Rust语言的官方文档中,将Cargo定义为rust的系统构建与程序包管理器。
Cargo的原意是货物,在这里我们可以将其理解为货物管理,引申为程序语言设计时的管理工具,相当于我们对货物进行管理一样。
作为初学者,你可能会有疑问,为什么一定要用Cargo命令呢?
其实,要编译Rust的程序,并非一定要用Cargo,你可以这样来编译你的rust程序:

> rustc main.rs
> .\main.exe
Hello, world!

在这里插入图片描述
“rustc”可以直接将.rs格式的程序编译为可执行文件,在windows环境,即exe文件。
在这里插入图片描述
对于简单的程序,使用rustc编译足矣,但随着学习的深入,项目的复杂化,rustc很显然就很难满足使用,因为项目变得大而复杂后,不光是编译,还要管理项目相关的其他文件,如配置信息,依赖项,等。
而Rust提供了复杂项目所需的工具,即Cargo。对于Cargo的介绍,我们千言万语汇成一句话,Cargo可以使你的Rust项目使用起来更简单。

1、Cargo新建项目

$ cargo new hello_cargo
$ cd hello_cargo

在这里插入图片描述
使用Cargo创建一个新项目,非常简单,会自动在当前文件夹下生成项目文件夹、主程序文件main.rs(src文件夹下)以及相关的配置文件Cargo.toml。

2、Cargo构建和编译项目Cargo build、Cargo run

PS E:\100rust\hello_world> cargo build
   Compiling hello_world v0.1.0 (E:\100rust\hello_world)
    Finished dev [unoptimized + debuginfo] target(s) in 1.48s

在这里插入图片描述
Cargo build会自动构建项目,自动创建一个target文件夹,文件夹包含编译后的文件:
在这里插入图片描述
可以看到里面有个hello_world.exe文件,此时可以直接调用它,成功运行后输出helloworld。
在这里插入图片描述
但是,我们可以使用Cargo run来一键编译且运行:
在这里插入图片描述
3、Cargo check仅编译项目
有一个常会遇到的场景是,我在编程序时只想检查项目,但并不想生成可执行文件,我的目的是确保没有错误或者bug。因为,通常编译且生成可执行文件,需要的时间会大于仅编译检查的时间,所以使用Cargo check会更快,如果你使用Cargo run当然也是可行的,但我相信你不会这么做。
在这里插入图片描述
以上是一个简单但完整的项目构成的过程,使用Cargo在hello world这样的项目中似乎有点大材小用,但Cargo是为了你构建大型项目准备的,你应该在学习Rust的初期,就直接使用Cargo,这对你以后管理rust项目非常重要。

当然,Cargo的指令远不止以上那些。

   build, b    Compile the current package
    check, c    Analyze the current package and report errors, but don't build object files
    clean       Remove the target directory
    doc, d      Build this package's and its dependencies' documentation
    new         Create a new cargo package
    init        Create a new cargo package in an existing directory
    add         Add dependencies to a manifest file
    remove      Remove dependencies from a manifest file
    run, r      Run a binary or example of the local package
    test, t     Run the tests
    bench       Run the benchmarks
    update      Update dependencies listed in Cargo.lock
    search      Search registry for crates
    publish     Package and upload this package to the registry
    install     Install a Rust binary. Default location is $HOME/.cargo/bin
    uninstall   Uninstall a Rust binary

如Cargo clean,将清除target文件夹。
在这里插入图片描述

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

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

相关文章

js替换字符串中的某个字符

let startDate2023/10/30 let strstartDate.replace(/\//g,"-") console.log(startDate,startDate) console.log(str,str)

解决安装pytorch错误

问题: (yanzhi) C:\Users\17648>pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 Looking in indexes: https://download.pytorch.org/whl/cu121 ERROR: Could not find a version that satisfies the requirem…

【vscode远程开发】使用内网穿透实现在公网环境下远程访问

文章目录 前言1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 前言 远程…

柯桥日常英语培训,英语中参加商务会议需要注意什么?

PART 01 Be prepared. 做好准备。 Have the agenda, a notebook and pen, business cards and any other documents you may need ready. Determine what you can do beforehand to be ready to join in on the discussion. 准备好议程、笔记本和笔、名片以及其他可能需要的…

做海外问卷调查有什么答题技巧和方法?

大家好,我是橙河老师,这篇文章聊一聊做海外问卷调查有什么答题技巧和方法? 海外问卷调查,其实就是一些外国公司,对外发放的有偿市场调查问卷,目的是收集消费者的意见和反馈,我们只要按照要求去…

windows搭建Cobalt strike

使用cobaltstrike 3.14版本 window10搭建服务器 默认端口可以修改的 window10搭建客户端 双击客服端bat运行连接 监听器 windows/beacon为内置监听器,包括dns、http、https、smb、tcp、extc2六种方式的监听器;windows/foreign为外部监听器 wndows/be…

酒旅服务环境展示预约小程序的效果

酒旅业的需求度一直很高,交通便利又没有其它因素影响,酒店、景区、旅行社等生意增长迅速,而在实际运用中,随着线上化程度加快,传统酒旅经营企业也会面临一些痛点,如品牌传播、引流拓客、转化复购、内容承载…

FMC子卡解决方案:FMC214-基于FMC兼容1.8V IO的Full Camera Link 输出子卡

FMC214-基于FMC兼容1.8V IO的Full Camera Link 输出子卡 一、板卡概述   基于FMC兼容1.8V IO的Full Camera Link 输出子卡支持Base、Middle、Full Camera link信号输出,兼容1.8V、2.5V、3.3V IO FPGA信号输出。适配xilinx不同型号开发板和公司内部各FMC载板。北…

国标GB28181如何实时视频播放

简述 视频流媒体安防监控国标GB28181平台LiveMedia视频能力丰富,部署灵活,便捷易用既能作为业务平台使用,也能作为安防监控视频管理层被业务管理平台调用。国标GB28181视频监控LiveMedia平台可提供流媒体接入、处理、转发等服务&…

YOLOv8改进:最新复现SOD-YOLOv8,助力小目标检测(Small Object Detection)

💡💡💡本文独家改进:改进点:1)backbone加入CBAM;2)backbone、neck连接处加入involution注意力;3)添加一个针对小物体的额外预测头,提升小目标检测性能; SOD-YOLOv8 | 亲测在多个数据集能够实现大幅涨点,尤其在VisDrone-2019涨点显著, VisDrone-2019-DET 数…

Modelsim 用户手册(1)——Introduction

目录 一、操作结构和流程( Operational Structure and Flow) 二、仿真任务概述(Simulation Task Overview) 三、仿真基本步骤( Basic Steps for Simulation) 3.1 基本概念 3.1.1 文件和库映射&#xf…

Jetpack:026-Jetpack中的Slider

文章目录 1. 概念介绍2. 使用方法3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了Jetpack多点触控相关的内容,本章回中 主要介绍Slider。闲话休提,让我们一起Talk Android Jetpack吧! 1. 概念介绍 我们在本章回…

MATLAB R2023a下载链接及软件安装教程

先解释下什么是A什么是B,省的有些小菜们总问。 a是上半年,b是下半年版本,但是有些小弱们总是觉得只要是b一定功能多,这不一定的,同年版本b比a可能稍微全点,不同年的,比如21b,22a&am…

如何使用Javascript实现缓动特效

什么是缓动特效 虽然缓动特效这个词你可能没有听说过,但是绝大部分人都使用过。最典型的场景是在实现动画的过程中,无论是早期的jQuery还是CSS3里的transition,都允许你添加一个缓动特效参数,例如 linear, ease-in, ease-out等等…

云安全—etcd攻击面

0x00 前言 本篇还是一样,先来说一说etcd是什么,干啥的,然后再来看看etcd的攻击面到底有哪些,做一个抛砖引玉的作用,如有不妥之处还请斧正 0x01 etcd 依旧还是按照问问题的方式来进行阐述,因为学到的东西…

【一文搞定--web 自动化之文件上传】

在做web自动化时,我们经常会碰到一些场景需要进行文件上传,而文件上传打开的窗口属于windows控件,通过Selenium是操作不了的,此篇文章给大家介绍几种实现方法。 前言 方法一:sendKeys 前提条件:文件上传元…

51单片机电子钟闹钟温度LCD1602液晶显示设计( proteus仿真+程序+原理图+设计报告+讲解视频)

51单片机电子钟闹钟温度液晶显示设计( proteus仿真程序原理图设计报告讲解视频) 1.主要功能:2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单&&下载链接资料下载链接(可点击): 🌟51单片…

2103. 环和杆

2103. 环和杆 难度: 简单 来源: 每日一题 2023.11.02 总计有 n 个环,环的颜色可以是红、绿、蓝中的一种。这些环分别穿在 10 根编号为 0 到 9 的杆上。 给你一个长度为 2n 的字符串 rings ,表示这 n 个环在杆上的分布。rings 中每两个字符形成一个…

汇编-算术运算符

下面给出了一些有效表达式和它们的值:

跆拳道馆展示服务预约小程序的效果如何

除了书本上的知识,很多人或孩子会选择学习一些技能,如游泳、钢琴、棋艺花艺等,跆拳道也拥有较高的客户群体,但由于需求属性较强,因此在实际发展中,商家宣传推广、获取线索、服务赋能方面不足。 如今互联网…