ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Rust构建环境搭建

2022-01-27 09:33:45  阅读:342  来源: 互联网

标签:cargo rand crates 构建 Rust io 安装 rust 搭建


###安装涉及的概念
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
    image.png
    但是这种安装方式在公司内部多个环境均没有安装成功过,每次安装均报如下错误:
    image.png
    因此不推荐使用这种方式安装。
  2. 直接在官网下载安装包安装:
    2.1 rust编译环境安装
    https://forge.rust-lang.org/infra/other-installation-methods.html
    image.png
    根据个人的环境下载安装包,以linux为例,下载x86_64-unknown-linux-gnu安装包,
    解压:tar –zxvf rust-1.41.0-x86_64-unknown-linux-gnu.tar.gz
    进入目录:执行./install.sh 完成安装
    检查是否安装成功,使用 rustc -V命令查看版本信息:
    image.png
    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
image.png
修改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 对工程进行编译,出现如下错误:
image.png
出现如上错误的原因是,rust自带的编译器rustc在编译时,不会去自动寻找第三方依赖,需要手动指定编译,由于找到rand三方库,因此使用rustc编译直接报错。
使用cargo可以解决包依赖的问题,cargo会自动寻找三方库。
我们我们当前的代码中依赖随机数库。 但是 Rust 语言核心和 Rust 标准库都没有提供生成随机数的的方法或结构体。
我们只能借助于 https://crates.io/ 上其它开发者提供的第三方库或 crates。
我们可以打开网站 crates.io 并在顶部的搜索中输入 rand 然后回车来查找第三方随机数生成库。
从搜索的结果来看,由很多和随机数生成的相关库,不过我们只使用 rand。
点击搜索结果中的 rand 会跳转到 https://crates.io/crates/rand。
下图是我们需要的 随机数生成库 rand 的基本信息截图。
image.png
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插件,到插件管理界面安装插件
image.png
image.png

安装完成后,重启clion,在语言配置界面(File->Settings->Language&Frameworks)配置rust:
image.png
配置完成后就要可以在clion创建rust工程:
image.png

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)
分类:

标签:cargo,rand,crates,构建,Rust,io,安装,rust,搭建
来源: https://www.cnblogs.com/gongxianjin/p/15848769.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有