首页 > 其他分享 >rustbook-ch1-入门指南-总结

rustbook-ch1-入门指南-总结

时间:2023-11-13 16:45:49浏览次数:43  
标签:cargo 入门 rustup rustbook ch1 Rust 版本 安装 rust

rustbook-ch1-入门指南-总结

一、rust版本管理

1、安装rust之前需要安装一个C语言编译器。

正常编译、执行rust程序,需要一个链接器。由于C语言编译器通常都会附带链接器,所以需要安装一个C语言编译器。除了编译执行需要链接器外,一部分常用的Rust包会依赖使用C语言编写的代码,为了编译这些Rust代码,也需要安装一个C语言编译器。

2、安装rust的命令和卸载rust的命令

安装rust需要使用rust工具.

curl https://sh.rustup.rs -o rustup-init.sh #下载rustup安装脚本
./rustup-init.sh #安装rustup及rust工具链 ,默认装stable版本rust
rustup self uninstall #卸载rustup和rust工具链

3、用rustup管理rust的版本

rustup install nightly #安装nightly版本
rustup install stable/1.8.0 #安装stable版本,或者安装1.8.0版本
rustup show  #查看目前已经安装的rust版本,当前的默认版本或者叫active活动版本
rustup default #查看目前默认(active)版本
rustup default nightly/stable/1.8.0  #设置默认的rust版本,或者叫active活动rust版本,或者叫切换rust版本
rustup uninstall nightly/stable/1.8.0  #卸载某一个版本的rust
rustup update nightly/stable/1.8.0 更新rust版本和rustup,不写toolchain的版本,则更新默认的toolchain

4、概念辨析:channel、host triple、target、toolchains、profile、component

channel:

Rust 发布在三个不同的 channel上:stable、beta、nightly,简单说就是三种不同的版本。

- stable:Rust 的稳定版本,每 6 周发布一次。

- beta:Rust 的公开测试版本,将是下一个 stable 版本。

- nightly:每天更新,包含以一些实验性的新特性。

- edition: 目前有3个2015、2018、2021

host triple:主机三元组
target: =host triple,目标机器平台,指编译的目标平台,即编译后的程序在哪种操作系统上运行。

toolchains:
工具链,就是rust版本,一套 Rust 组件,包括编译器及其相关工具。

profile:
指的是toolchain的不同配置,包括3种:minimal 包含的工具最少;default 包含常用的工具;complete包含全部的工具。

为了方便对 component 进行管理,使用 profile 定义一组 component。

不同的 profile 包含不同的组件,安装 rustup 时有三种 profile 可选:

Profile component
minimal rustc, rust-std, cargo
default rustc, rust-std, cargo, rust-docs, rustfmt, clippy
complete all

修改 profile 命令如下:

rustup set profile minimal

component:toolchain 是由 component 组成的, component就是toolchain中的工具,一个工具就是一个组件,比如rustc是编译器工具,是工具链中的一个工具,所以rustc就是一个组件,cargo也是一个组件,等。

查看所有可用和已经安装的组件命令如下:

rustup component list

rustup 默认安装的组件:

  • rustc:Rust 编译器。
  • rust-std:Rust 标准库。
  • cargo:包管理和构建工具。
  • rust-docs:Rust 文档。
  • rustfmt:用来格式化 Rust 源代码。
  • clippy:Rust 的代码检查工具。

二、项目管理

5、cargo的基本用法

1 cargo new prjName  #新建一个包package
2 cd prjNameDir; cargo init #在存在一个package目录的情况下,用cargo创建项目
3 cargo check #检查package中的代码是否有编译错误,不会真的build
4 cargo fmt #格式化package中的rust代码
5 cargo build  --debug/--release  #编译package,默认是--debug
6 cargo run #以debug模式编译,并运行
7 cargo update #更新依赖的版本
8 cargo clean #移除target目录,清理编译结果
9 cargo doc --open #生成doc文档,并用默认浏览器打开
10 cargo add packageName #安装dependencies 比如cargo add rand就是安装rand库
11 carog remove pkgName #移除依赖 比如carog remove rand就是移除rand库
12 cargo install binName #安装二进制的crate到cargo/bin下
13 cargo uninstall binName #卸载二进制的crate
14 cargo package #将当前crate打包成crate
15 cargo publish #发布crate到crates.io,发布之前要cargo login,输入访问令牌token

6、crate是源代码的集合

依赖下载下来后是crate,但是crate是源代码的集合,所以在编译项目的时候,也是需要编译依赖的。

7、将手工创建的项目转为使用cargo管理的项目

如果没有使用 Cargo 开始项目,比如我们创建的 Hello,world! 项目,可以将其转化为一个 Cargo 项目。将代码放入 src 目录,并创建一个合适的 Cargo.toml 文件。

参考资料

1、https://kaisery.github.io/trpl-zh-cn/ch01-01-installation.html
2、https://blog.csdn.net/y1534414425/article/details/123931986
3、https://zhuanlan.zhihu.com/p/592293164

标签:cargo,入门,rustup,rustbook,ch1,Rust,版本,安装,rust
From: https://www.cnblogs.com/zhangzl419/p/17829478.html

相关文章

  • vuejs3.0 从入门到精通——Vuex
    Vuexhttps://vuex.vuejs.org/zh/一、Vue是什么? Vuex是一个专为Vue.js应用程序开发的状态管理模式+库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。1.1、什么是"状态管理模式"? 状态管理模式是一种在前端开发中管理......
  • 博客园新手入门教程
    博客园新手入门教程 一、注册博客园博客园官方网址:博客园-开发者的网上家园(cnblogs.com)二、申请开通博客提交成功后可编写文章发布博客三、注册完成后点击我的博客1.注册成功页面然后发布随笔位置 2、博客分类设置: 效果图如下: 四、点击随笔编写文章五......
  • jUnit测试框架入门详解​(加强版)
    jUnit测试框架入门详解入门知识什么是单元测试单元测试是针对最小的功能单元编写的测试代码。Java程序最小的功能单元是方法,因此单元测试就是针对单个Java方法的测试。为什么要使用单元测试使用main()方法测试的缺点:只能有一个main()方法,不能把测试代码分离,且也没有打印出测试结果......
  • 神经网络入门篇:详解多样本向量化(Vectorizing across multiple examples)
    多样本向量化与上篇博客相联系的来理解逻辑回归是将各个训练样本组合成矩阵,对矩阵的各列进行计算。神经网络是通过对逻辑回归中的等式简单的变形,让神经网络计算出输出值。这种计算是所有的训练样本同时进行的,以下是实现它具体的步骤:图1.4.1上篇博客中得到的四个等式。它们......
  • vuejs3.0 从入门到精通——provide、inject、mixins、extends
    provide、inject、mixins、extends一、provide二、inject三、mixins四、extendshttps://cn.vuejs.org/api/options-composition.html#mixins 一个包含组件选项对象的数组,这些选项都将被混入到当前组件的实例中。interfaceComponentOptions{mixins?:ComponentOptio......
  • MongoDB基础入门学习
    MongoDB基础入门此视频为学习尚硅谷MongoDB基础入门的学习记录导航目录MongoDB基础入门导航一、数据库什么是数据库?为什么要有数据库?数据库能做什么?数据库的服务器和客户端数据库的分类二、MongoDB常见命令安装MongoDBMongoDB的常见命令MongoDB的数据库分类操作MongoDB数据库......
  • 小白入门CSDN如何编写博客(保姆级)
    首先要登录博客园,没有账号要先注册一个账号(推荐微信注册,快捷)登录后点击写随笔在发布界面中编辑醒目标题与核心内容然后设置文章的各项属性最后发布博客就好啦~看完点赞~人美心善!......
  • rustbook-ch1-入门指南-总结
    rustbook-ch1-入门指南-总结1、安装rust之前需要安装一个C语言编译器。正常编译、执行rust程序,需要一个链接器。由于C语言编译器通常都会附带链接器,所以需要安装一个C语言编译器。除了编译执行需要链接器外,一部分常用的Rust包会依赖使用C语言编写的代码,为了编译这些Rust代码,也需......
  • Python爬虫 - Scarpy入门学习
    爬虫的分类通用爬虫:通用爬虫是搜索引擎爬虫的重要组成部分,主要是将互联网上的网页下载到本地,再对这些网页做相关处理(提取关键字、去掉广告),最后提供一个用户检索接口。聚焦爬虫:聚焦爬虫是根据指定的需求抓取网络上指定的数据。增量式爬虫:增量式爬虫是用来检测网站数据更新的情况,且可......
  • C语言入门基础知识
    C语言的概念C语言是一门编译型的计算机语言,需要依赖编译器将计算机语言转换成机器能够执行的机器指令**集成开发环境(IDE)**用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、调试功能等一体化的开发软件服务......