###安装涉及的概念
rustup : 安装rust和管理版本的工具,当前rust尚处于发展阶段,存在三种类型的版本,稳定版、测试版、每日构建版本,使用rustup可以在这三种的版本之间切换,默认是稳定版本。通过rustup可以安装rustc、cargo等工具。
cargo: rust的代码组织管理工具,提供了一些列的工具来支撑从项目建立、构建、测试、运行直至部署整个流程。
rustc:rust语言的编译器

###Linux Rust环境安装:
当前Rust支持两种安装方式:

  1. 通过rust官网下载rustup安装,linux在设置代理以后,通过如下命令进行下载:
    https://forge.rust-lang.org/infra/other-installation-methods.html
    curl https://sh.rustup.rs -sSf | sh

    但是这种安装方式在公司内部多个环境均没有安装成功过,每次安装均报如下错误:

    因此不推荐使用这种方式安装。
  2. 直接在官网下载安装包安装:
    2.1 rust编译环境安装
    https://forge.rust-lang.org/infra/other-installation-methods.html

    根据个人的环境下载安装包,以linux为例,下载x86_64-unknown-linux-gnu安装包,
    解压:tar –zxvf rust-1.41.0-x86_64-unknown-linux-gnu.tar.gz
    进入目录:执行./install.sh 完成安装
    检查是否安装成功,使用 rustc -V命令查看版本信息:

    2.2 cargo 配置
    修改cargo配置文件,在 ~/.cargo目录下增加一个config文件,将如下内容加入到config文件
   [source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'mirror'
[source.mirror]
registry = "http://mirrors.tools.huawei.com/rust/crates.io-index"

如果已有config文件,建议增加公司内部cargo的源,见上面config文件配置中repleace。mirror 部分的配置。

安装完成后以一个实际的例子验证cargo配置是否正确:
使用cargo新创建一个编译工程:
cargo new demo --bin

修改src中的main.rs将我们实际的demo代码放入到main.rs

use std::io;
use rand::Rng;
fn main() {
println!("Guess the number !");
let secret_number = rand::thread_rng().gen_range(1,101);
println!("Please input your guess."); let mut guess = String::new();
io::stdin().read_line(&mut guess)
.expect("Failed to read line"); println!("you guessed:{}",guess);
println!("The secret number is : {}",secret_number);
}

使用rustc 对工程进行编译,出现如下错误:

出现如上错误的原因是,rust自带的编译器rustc在编译时,不会去自动寻找第三方依赖,需要手动指定编译,由于找到rand三方库,因此使用rustc编译直接报错。
使用cargo可以解决包依赖的问题,cargo会自动寻找三方库。
我们我们当前的代码中依赖随机数库。 但是 Rust 语言核心和 Rust 标准库都没有提供生成随机数的的方法或结构体。
我们只能借助于 https://crates.io/ 上其它开发者提供的第三方库或 crates。
我们可以打开网站 crates.io 并在顶部的搜索中输入 rand 然后回车来查找第三方随机数生成库。
从搜索的结果来看,由很多和随机数生成的相关库,不过我们只使用 rand。
点击搜索结果中的 rand 会跳转到 https://crates.io/crates/rand。
下图是我们需要的 随机数生成库 rand 的基本信息截图。

rand的版本是0.7.3,我们需要修改工程下的Cargo.toml文件,增加对rand库版本的说明:

[package]
name = "demo"
version = "0.1.0"
authors = ["miles <senlan008@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
rand="0.7.3"

修改完成后,使用cargo build对工程进行构建:

root@ctup000107546:/home/rust/demo/src# cargo build
Updating `http://mirrors.tools.huawei.com/rust/crates.io-index` index
Downloaded cfg-if v0.1.10 (registry `http://mirrors.tools.huawei.com/rust/crates.io-index`)
Downloaded getrandom v0.1.14 (registry `http://mirrors.tools.huawei.com/rust/crates.io-index`)
Downloaded rand v0.7.3 (registry `http://mirrors.tools.huawei.com/rust/crates.io-index`)
Downloaded rand_core v0.5.1 (registry `http://mirrors.tools.huawei.com/rust/crates.io-index`)
Downloaded rand_chacha v0.2.2 (registry `http://mirrors.tools.huawei.com/rust/crates.io-index`)
Downloaded ppv-lite86 v0.2.8 (registry `http://mirrors.tools.huawei.com/rust/crates.io-index`)
Downloaded 6 crates (200.1 KB) in 0.65s
Compiling libc v0.2.72
Compiling getrandom v0.1.14
Compiling cfg-if v0.1.10
Compiling ppv-lite86 v0.2.8
Compiling rand_core v0.5.1
Compiling rand_chacha v0.2.2
Compiling rand v0.7.3
Compiling demo v0.1.0 (/home/rust/demo)
Finished dev [unoptimized + debuginfo] target(s) in 7.34s
root@ctup000107546:/home/rust/demo/src#

###Windows Rust环境安装:
1、rust编译环境安装:
windows环境上安装Rust需要先安装MSVC或者gcc编译器环境,由于涉A原因,建议安装gcc,windows下gcc建议安装minGW,minGW的安装请参考:http://3ms.huawei.com/km/blogs/details/6223745
然后到rust官网下载 x86_64_pc_windows_gnu 安装包安装到windows上, 安装完成后增加cargo配置文件:
在 C:/user/xxxx/.cargo目录下增加config文件:

[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'mirror'
[source.mirror]
registry = "http://mirrors.tools.huawei.com/rust/crates.io-index"

2、clion集成rust调测环境:
clion直接到toolcloud上下载安装文件进行安装。
安装clion以后,安装rust和Toml插件,到插件管理界面安装插件

安装完成后,重启clion,在语言配置界面(File->Settings->Language&Frameworks)配置rust:

配置完成后就要可以在clion创建rust工程:

windows下安装rust遇到如下问题:
安装过rust之后,运行rustc或者cargo命令行命令时,出现error: no default toolchain configured 错误,解决此问题可通过
通过rustup重新指定link安装目录即可:

C:\Users\j00321907\.cargo\bin>rustup toolchain link mygnutoolchain "C:\Program Files\Rust stable GNU 1.44"
C:\Users\j00321907\.cargo\bin>rustup default mygnutoolchain
info: default toolchain set to 'mygnutoolchain'
C:\Users\j00321907\.cargo\bin>rustc.exe -V
rustc 1.44.1 (c7087fe00 2020-06-17)
分类:

Rust构建环境搭建的更多相关文章

  1. [原]项目进阶 之 持续构建环境搭建(四)Jenkins环境搭建

    在之前的几篇文章中,我给大家分别介绍了这次的持续化构建环境搭建的相关前提内容.如果说前面的文章都是小菜的话,那么今天的这篇文章就是我们这个系列文章的主菜. 1.前提 安装jenkins需要安装JDK. ...

  2. [原]项目进阶 之 持续构建环境搭建(三)Maven环境搭建

    上次的博文项目进阶 之 持续构建环境搭建(二)Nexus私服器中,我们搭建了一个Nexus的maven私服,这次我们来重点讲解一下Maven的安装和配置.这里说明一下这次的环境搭建,比较基础,但却非常 ...

  3. [原]项目进阶 之 持续构建环境搭建(二)Nexus私服器

    上一篇博文项目进阶 之 持续构建环境搭建(一)架构中,我们大致讲解了一下本系列所搭建环境的基本框架,这次开始我们进入真正的环境搭建实战.重点不在于搭建的环境是否成功和完善,而是在搭建过程中充分认识到每 ...

  4. [置顶] 项目进阶 之 持续构建环境搭建(二)Nexus私服器

    上一篇博文项目进阶 之 持续构建环境搭建(一)架构中,我们大致讲解了一下本系列所搭建环境的基本框架,这次开始我们进入真正的环境搭建实战.重点不在于搭建的环境是否成功和完善,而是在搭建过程中充分认识到每 ...

  5. Grunt JS构建环境搭建以及使用入门

    Grunt JS构建环境搭建以及使用入门 1.应用场景 一种自动化任务处理工具,对于日常的需求(代码规则检查.代码合并)可以实现自动化执行,只需要保留package.json和Gruntfile.js ...

  6. Rust开发环境搭建

    1.Rust概述 按照百度百科的说法,Rust是一门系统编程语言 ,专注于安全 ,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言.Rust在语法上和C++类似 ,但是设计者想要在保证 ...

  7. Rust开发环境搭建和hello world工程

    windows10 WSL 打开wsl,执行以下命令 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 出现安装选项,选择1 ...

  8. Grunt自动化构建环境搭建

    1.环境准备 需要安装Git.Node.Bower.Grunt.Ruby NodeJS https://nodejs.org/en/ Ruby    http://rubyinstaller.org/ ...

  9. windows平台 cloin +rust 开发环境搭建

    rust 安装请看上一篇 clion 下载地址 破解 教程 1.先执行reset_jetbrains_eval_windows.vbs 2.打开软件选择免费使用 将ide-eval-resetter- ...

  10. 我是如何进行Spring MVC文档翻译项目的环境搭建、项目管理及自动化构建工作的

    感兴趣的同学可以关注这个翻译项目 . 我的博客原文 和 我的Github 前段时间翻译的Spring MVC官方文档完成了第一稿,相关的文章和仓库可以点击以下链接.这篇文章,主要是总结一下这个翻译项目 ...

随机推荐

  1. 操作系统学习笔记10 | I/O、显示器与键盘

    从这一部分开始介绍操作系统的设备驱动,操作系统通过文件系统的抽象驱动设备让用户能够使用显示器.键盘等交互工具.并讲解printf和scanf是如何实现敲下键盘将字符显示到屏幕上的. 参考资料: 课程: ...

  2. Go常见

    GO基础语法 方法或函数调用时,传入参数一般都是值复制,除非是map.slice.channel.指针类型是引用传递 短的变量声明(Short Variable Declarations),即自动推导 ...

  3. MasaFramework -- 锁与分布式锁

    前言 什么是锁?什么是分布式锁?它们之间有什么样的关系? 什么是锁 加锁(lock)是2018年公布的计算机科学技术名词,是指将控制变量置位,控制共享资源不能被其他线程访问.通过加锁,可以确保在同一时 ...

  4. .NET 6 EFCore WebApi 使用 JMeter 进行吞吐量测试

    .NET 6 EFCore WebApi 使用 JMeter 进行吞吐量测试 开发环境 VS2022 .NET 6 测试环境 测试工具 接口压力测试工具:JMeter 数据库 MySQL 5.7 数据 ...

  5. OKR之剑(理念篇)02—— OKR布道之旅

    作者:vivo互联网平台产品研发团队 1.我们是如何引入的 1.1.企业文化匹配 大概是在2013年底,一些创业者在硅谷深受OKR洗礼,并在自己的公司内小范围运用,以此OKR开始传入中国.而vivo初 ...

  6. Kubernetes 监控--Alertmanager

    前面我们学习 Prometheus 的时候了解到 Prometheus 包含一个报警模块,就是我们的 AlertManager,Alertmanager 主要用于接收 Prometheus 发送的告警 ...

  7. 在客户端电脑使用 kubectl 远程管理 Kubernetes

    日常工作中,可能需要在自己的笔记本电脑上执行 kubectl 命令以管理远程 Linux 服务器上的 Kubernetes 集群.通过调用 kubernetes API 来实现对 Kubernetes ...

  8. Docker部署ELK

    这里不采用逐个docker镜像的方式,而是直接使用elk三者聚合在一起的镜像. 镜像地址:https://hub.docker.com/r/sebp/elk 前提操作: $ vim /etc/sysc ...

  9. 从nuxt开始的SEO之路

    故事从一个"美好"的早上开始...... 大清早的来到公司,打开电脑,emm, 还是熟悉的味道,鱼儿被我摸熟了的味道......就在开始准备一天的摸鱼之旅的时候,一种不详的预感涌上 ...

  10. HDU3506 Monkey Party (区间DP)

    一道好题...... 首先要将环形转化为线形结构,接着就是标准的区间DP,但这样的话复杂度为O(n3),n<=1000,要超时,所以要考虑优化. dp[i][j]=min( dp[i][k]+d ...