• 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)
    
    分类:
  • 相关阅读:
    bzoj 3111 蚂蚁 动态规划
    bzoj3011 可并堆
    bzoj2693 莫比乌斯反演
    bzoj 2671 莫比乌斯反演
    bzoj2194 快速傅立叶之二 FFT
    bzoj1396&&2865 识别子串 后缀自动机+线段树
    安卓开发中使用ZXing生成解析二维码
    使用tencent协议发起临时会话
    使用zxing编写的二维码生成解析工具:QRCoder
    使用JavaScript获取浏览器Chrome版本信息
  • 原文地址:https://www.cnblogs.com/gongxianjin/p/15848769.html
Copyright © 2020-2023  润新知