码迷,mamicode.com
首页 > 其他好文 > 详细

Rust学习

时间:2020-03-24 23:23:36      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:set   选中   目的   roc   用户目录   描述   soft   shm   窗口   

# Rust学习
## Rust安装
1. 直接访问官网 https://www.rust-lang.org/tools/install 下载相应的版本进行安装。
2. 如果是Windows版本的Rust,需要安装Visual Studio 2012以上版本的VC++ 才能编译通过
3. 在命令行窗口中运行  rustc --version     如果能正常显示版本说明已安装成功
4. 安装VS Code的RUST插件 ,在VSCode Extension中查找Rust, 选择 “Rust (rls)”并安装。
5. 在用户目录下(~\.cargo\bin),应该有cargo-clippy.exe,cargo-fmt.exe,cargo-miri.exe,cargo.exe,clippy-driver.exe,rls.exe,rust-gdb.exe,rust-lldb.exe,rustc.exe,rustdoc.exe,rustfmt.exe,rustup.exe
6. rustdoc 帮助文档
7. rustc rust编译器
8. rustup rust 版本安装和更新器
9. cargo rust的包管理,像NODEJS的NPM
10. cargo new <packagename> --bin 新建一个RUST的应该项目
11. cargo new <packagename> --lib 新建一个RUST的链接库项目
12. rust切换nightly模式
rust stable 切换 nightly
安装:rustup install nightly
设为default: rustup default nightly
rustc --version就能看到切换到nightly版本了

13. rust切换stable模式
rustup default stable

14. cargo 换国内中科镜像(如果所处的环境中不允许使用 git 协议,可以把上述地址改为:registry = "https://mirrors.ustc.edu.cn/crates.io-index")

15. 调试rust程序
> 必须在vscode里安装 Microsoft C/C++ 插件
> 然后再设置选中 Allow setting breakpoints in any file.
> 先用cargo build,生成exe文件
> 按F5开始调试,修改launch.json例如以下内容,将program值修改为当前exe文件。 保存 launch.json
‘‘‘
{    
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${workspaceFolder}/target/debug/netchat.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,            
        }
    ]
}
‘‘‘
> 然后就可以随便设置断点, 按F5调试 。

```
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = ‘ustc‘

[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
```
将上述内容保存为 config ,放在~/.cargo/


## 新建一个项目用 cargo new <packagename> --bin
1. cargo new hello --bin
2. 结构为:hello\
                 cargo.lock
                 cargo.toml     当前项目的配置文件
                 .gitignore
                 \src\main.rs
3. cargo.toml                 
```
[package]
name = "hello"
version = "0.1.0"
authors = ["alfred"]
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
rocket = "0.3.6"
rocket_codegen = "0.3.6"

基于rust官方仓库crates.io,通过版本说明来描述:
基于项目源代码的git仓库地址,通过URL来描述:
基于本地项目的绝对路径或者相对路径,通过类Unix模式的路径来描述: 这三种形式具体写法如下:
[dependencies]
typemap = "0.3"
plugin = "0.2*"
hammer = { version = "0.5.0"}
color = { git = "https://github.com/bjz/color-rs" }
geometry = { path = "crates/geometry" }

```

4. cargo build
   输出到  hello\ target
              


# 包管理
1. 系统模块引用: 直接使用use ;  ex. use std::collections::HashMap;
use std::collections::HashMap;

let mut scores = HashMap::new();

scores.insert(String::from("Blue"), 10);
scores.insert(String::from("Yellow"), 50);


2. main文件中同级模块引用:使用 mode; 
> 例如:同级目录下有一个data.rs,内有公开方法out;
  mod data;
  fn main(){
     data::out();
  }
    
3. 非main文件中引用非系统模块,不能直接使用mod, 需要使用 mod.rs 来公开模块;例如当前目录下有data.rs,mod.rs,c.rs; 要在mod.rs中添加相应的module,然后可以mod.rs和c.rs中引用。
>data.rs; 因为out是公开的,data在同级目录下应该也是公开的
pub fn out() {
    println!("hello");
}
>mod.rs
pub mod data;//公开data模块
pub mod c;
fn out(){
    data::out();
}
>c.rs
use crate::data;
fn out(){
    data::out();
}




Rust学习

标签:set   选中   目的   roc   用户目录   描述   soft   shm   窗口   

原文地址:https://www.cnblogs.com/liufu627/p/12562646.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!