首页 > 其他分享 >Rust权威指南阅读笔记(一)Rust简介与安装

Rust权威指南阅读笔记(一)Rust简介与安装

时间:2024-01-05 21:13:11浏览次数:28  
标签:cargo rustup 简介 笔记 编译 工具 安装 Rust

参考:

Windows10配置Rust开发环境 | jonssonyan' Website
win10安装Rust+VS Code配置Rust环境 - 鱼又悲 - 博客园 (cnblogs.com)

1.1 Rust简介

1.2 安装Rust

https://www.rust-lang.org/zh-CN/tools/install
下载 RUSTUP-INIT.EXE并运行
如遇到:component download failed for clippy-x86_64-pc-windows-msvc:...

在powershell中打开RUSTUP-INIT.EXE所在目录

$ENV:RUSTUP_DIST_SERVER='https://mirrors.ustc.edu.cn/rust-static' 
$ENV:RUSTUP_UPDATE_ROOT='https://mirrors.ustc.edu.cn/rust-static/rustup'
.\rustup-init.exe

1.3 Hello World

fn main() {
    println!("Hello World!");
}
  • 编译:rustc main.rs
  • 运行:./hello_world.exe
  • Rust文件后缀名:rs
  • 文件命名规范: hello_world.rs

解析

  • 定义函数:fn main() { }
    没有参数,没有返回值
  • main函数是每个Rust可执行程序最先运行的代码
  • 打印文本:println!("Hello World!");
    Rust的缩进是4个空格而不是tab
    println! 是一个Rust macro(宏),以!结尾的都是宏,函数没有!
    代码以;结尾

编译和运行是单独的两步

  • 运行Rust程序之前必须先编译,命令为:rustc 源文件名
  • 编译成功后,会生成一个二进制文件
    在Windows上还会生成一个.pdb文件,里面包含调试信息
  • Rust是ahead-of-time 编译的语言
    可以先编译程序,然后把可执行文件交给别人运行(无需安装Rust)
  • rustc只适合简单的Rust程序,如果文件比较多,程序比较大用rustc就不合适了,此时需要使用cargo

1.4 Cargo

cargo是什么

Cargo是Rust的构建系统和包管理工具,一构建代码、下载依赖的库、构建这些库..

使用cargo创建项目

cargo new hello_cargo
该命令会在当前目录下创建一个名为hello_cargo的文件夹,目录结构如下

hello_cargo
-src
    main.rs
.gitignore
Cargo.toml

直接初始化了一个新的Git仓库,
可以使用其他的VCS或者不用VCS:cargo new 的时候用 --vcs

Cargo.toml文件:

[package]
name = "hello_cargo"
version = "0.1.0"
edition = "2021"

[dependencies]
  • TOML(Tom's Obvious, Minimal Language)格式,是 Cargo 的配置格式
  • [pacakge],是一个区域标题,表示下方内容是用来配置包(package)的
    • name,项目名
    • version,项目版本
    • edition,使用的 Rust版本3
  • [dependencies],另一个区域的开始, 它会列出项目的依赖项
  • 在Rust中,代码的包(第三方库)称作crate

src/main.rs

源代码都应该放在src目录下
如果创建项目时没有使用cargo,也可以把项目转化为使用cargo:
-把源代码文件移动到src下
-创建Cargo.toml 并填写相应的配置

cargo build 创建可执行文件

第一次运行 cargo build 会在顶层目录生成 cargo.lock 文件

  • 该文件负责追踪项目依赖的精确版本
  • 不需要手动修改该文件

cargo run 构建和运行cargo项目

编译代码+执行结果

cargo check 检查代码

查代码,确保能通过编译,但是不产生任何可执行文件
cargo check 要比 cargo build 快得多

cargo build --release 为发布构建

编译时会进行优化,代码会运行的更快,但编译时间更长
会在target/release而不是target/debug生成可执行文件

常用命令

rustup相关命令

# 显示当前安装的工具链信息
rustup show
# 检查安装更新
rustup update
# 卸载
rustup self uninstall
# 设置当前默认工具链
rustup default stable-x86_64-pc-windows-gnu
# 查看帮助
rustup -h
# -------------------------->配置工具链
# 查看工具链
rustup toolchain list
# 安装工具链
rustup toolchain install stable-x86_64-pc-windows-gnu
# 卸载工具链
rustup toolchain uninstall stable-x86_64-pc-windows-gnu
# 设置自定义工具链
rustup toolchain link <toolchain-name> "<toolchain-path>"
# -------------------------->配置一个目录以及其子目录的默认工具链
# 查看已设置的默认工具链
rustup override list
# 设置该目录以及其子目录的默认工具链
rustup override set <toolchain> --path <path>
# 取消目录以及其子目录的默认工具链
rustup override unset --path <path>
# -------------------------->配置工具链的可用目标
# 查看目标列表
rustup target list
# 安装目标
rustup target add <target>
# 卸载目标
rustup target remove <target>
# 为特定工具链安装目标
rustup target add --toolchain <toolchain> <target>
# -------------------------->配置 rustup 安装的组件
# 查看可用组件
rustup component list
# 安装组件
rustup component add <component>
# 卸载组件
rustup component remove <component>

cargo 相关

# 查看cargo版本
cargo --version
# 新建项目
cargo new <project_name>
# 构建项目
cargo build
# 运行项目
cargo run
# 检查项目
cargo check
# 安装Rust二进制文件
cargo install
# 卸载Rust二进制文件
cargo uninstall
# 查看帮助
cargo -h

标签:cargo,rustup,简介,笔记,编译,工具,安装,Rust
From: https://www.cnblogs.com/Kroot/p/17948096

相关文章

  • openGauss学习笔记-187 openGauss 数据库运维-常见故障定位手段
    openGauss学习笔记-187openGauss数据库运维-常见故障定位手段187.1操作系统故障定位手段查询状态时,显示一个节点上所有实例都不正常时,可能是操作系统发生了故障。可以通过如下方法确定操作系统是否存在问题:通过SSH或者其它远程登录工具登录该节点。如果连接失败,请尝试通过......
  • 《python神经网络读书笔记》
    感想:人工智能是一门古老的学科,意思是人为的创造出和人类相似的智能体。在很多科幻影视作品中都有描述,甚至有的影视作品中不是使用计算机来实现人工智能。但是实际上这门学科在21世纪之前一直没什么进展。20世纪时,这门学科的主要研究方向是通过写一些强制判断逻辑来模拟智能体。......
  • ICLR 2022: Anomaly Transformer论文阅读笔记+代码复现
    本论文全名为AnomalyTransformer:TimeSeriesAnomalyDetectionwithAssociationDescrepancy(通过关联差异进行时序异常检测),主要提出了一种无监督的异常点检测算法,并在6个benchmarks上测试,获取良好结果。论文链接:ANOMALYTRANSFORMER:TIMESERIESANOMALYDETECTIONWITHAS......
  • 架构整洁之道笔记4
    软件架构架构师的定位工作实质:规划如何将系统切分为组件,并安排好组件之间的排列关系,以及组件之间互相通信的方式。目的:更好地对组件开发、部署、运行、维护。如果想设计一个更方便推进各项工作的系统,策略就是在设计中尽可能长时间地保留尽可能多的可选项。开发的角度难以开......
  • 大语言模型优化方法简介:Prompt、RAG、Fine-tuning
    GPT、LLama、Gemini等大语言模型虽展现出强大能力,但在实际应用中仍有问题,例如在准确性、知识更新速度和答案透明度方面,仍存在挑战。论文“Retrieval-AugmentedGenerationforLargeLanguageModels:ASurvey(面向大语言模型的检索增强生成技术:调查)”https://arxiv.org/abs/231......
  • 知识管理方案探讨及主流笔记软件体验
    前言平常本人使用hexo博客系统,用于记录学习笔记、生活随笔等,但是随着笔记的增多,一些碎片化的、不成体系的知识点又不足以单独发文章,了解到双链类笔记对知识体系的串联,于是开始寻找更好的知识管理方案。以下体验仅代表个人意见。软件体验可以看看下了31个markdown编辑器,我就不......
  • [NLP复习笔记] N-gram 及基本平滑方法
    1.N-gram模型1.1N-gram模型介绍\(\text{N-gram}\)是一种基于统计语言模型的算法,用于预测文本中的单词,其中\(\text{N}\)一般指的是序列中的单词数量。其基本思想是将文本内容进行大小为\(\text{N}\)的滑动窗口操作来计算概率。例如:当\(\text{N}=1\)时,模型被称为"u......
  • 笔记day3
    原码,反码,补码负数在内存中存储的时候,储存的是二进制的补码二进制最高位存储的是符号位,如果为1则表示的是一个负数,0是正数原码符号位(最高位)不变,其他位按位取反得到的是反码。反码加1得到的是补码。#define_CRTSECURE_NO_WARNINGS1#include<stdio.h>#include<string.h>intmain......
  • Flink 简介
    ApacheFlink是一个分布式流处理器,具有直观和富有表现力的API,可实现有状态的流处理应用程序。它以容错的方式有效地大规模运行这些应用程序。Flink于2014年4月加入Apache软件基金会作为孵化项目,并于2015年1月成为顶级项目。从一开始,Flink就拥有一个非常活跃且不断增长的用户和贡......
  • 雷达脉冲简介
    脉冲雷达图1:雷达运行时间测量脉冲雷达发射短而强的脉冲,并在静默期接收回波信号。与 连续波雷达相比,发射器在测量完成之前关闭。该方法的特点是雷达脉冲调制具有非常短的传输脉冲(通常传输脉冲持续时间为τ≈0.1…1µs)。发射脉冲之间有非常大的脉冲暂停Τ>>τ,这被称......