Rust学习
Posted liufu627
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rust学习相关的知识,希望对你有一定的参考价值。
# 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. 在用户目录下(~.cargoin),应该有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
srcmain.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学习的主要内容,如果未能解决你的问题,请参考以下文章
rust语言:开始学习rust语言,使用vscode进行开发,rust不要做为自己的第一门开发语言,c++和rust都要学习好,成年人两个都要。
rust语言:rust项目有很多公司程序员已经开始在学习使用中了,都有 Rust Meetup 2022了,想往底层走的可以学习C++Rust了。
rust语言:rust项目有很多公司程序员已经开始在学习使用中了,都有 Rust Meetup 2022了,想往底层走的可以学习C++Rust了。