Rust 使用
安装
Ubuntu
export RUSTUP_DIST_SERVER="https://rsproxy.cn"
export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"
curl --proto '=https' --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh
# 一路回车即可
Windows
# 下载地址镜像
set RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
set RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup
下载Microsoft C++ 生成工具
安装Microsoft C++构建工具,最小化安装步骤如下,参考rust官方教程。
点单个组件,勾选这两个。
第一个搜索MSVC 最新
第二个搜索Windows 11 SDK
,可能有多个,选SDK、库和框架
下的最新那个即可。
- MSVC v143 - VS 2022 C++ x64/x86 生成工具(最新)
- Windows 11 SDK (10.0.22621.0)
点语言,额外勾选英语
安装后配置(可选)
crates 镜像加速
建议安装 crm 来自动配置源
cargo install crm --locked
crm use rsproxy-sparse
也可手动编辑
Ubuntu ~/.cargo/config.toml
Win %USERPROFILE%\.cargo\config.toml
没有就创建一个
示例配置(点击展开)
[source]
[source.crates-io]
replace-with = "rsproxy-sparse"
[source.rsproxy-sparse]
registry = "sparse+https://rsproxy.cn/index/"
[registries]
[registries.bfsu]
index = "https://mirrors.bfsu.edu.cn/git/crates.io-index.git"
[registries.bfsu-sparse]
index = "sparse+https://mirrors.bfsu.edu.cn/crates.io-index/"
[registries.hit]
index = "https://mirrors.hit.edu.cn/crates.io-index.git"
[registries.nju]
index = "https://mirror.nju.edu.cn/git/crates.io-index.git"
[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"
[registries.rsproxy-sparse]
index = "sparse+https://rsproxy.cn/index/"
[registries.sjtu]
index = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"
[registries.sjtu-sparse]
index = "sparse+https://mirrors.sjtug.sjtu.edu.cn/crates.io-index/"
[registries.tuna]
index = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"
[registries.tuna-sparse]
index = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"
[registries.ustc]
index = "git://mirrors.ustc.edu.cn/crates.io-index"
[registries.ustc-sparse]
index = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"
[net]
git-fetch-with-cli = true
内容
编译缓存 sccache
下载 sccache 放在 ~/.cargo/bin/,或使用cargo安装。
cargo install sccache
#编辑 ~/.cargo/env 加入一行
export RUSTC_WRAPPER=sccache
#默认缓存位置在.cache/sccache/
Vim配置
#终端执行
git clone https://github.com/rust-lang/rust.vim ~/.vim/pack/plugins/start/rust.vim #代码着色
git clone --depth 1 https://github.com/zxqfl/tabnine-vim ~/.vim/pack/plugins/start/tabnine-vim #自动补全
#确保下面两行在.vimrc里
filetype plugin indent on
let g:rustfmt_autosave = 1 " Rustfmt
书
# 终端执行
rustup doc
官网
https://www.rust-lang.org/zh-CN/learn
Rust 程序设计语言 简中
https://weread.qq.com/web/reader/d733256071eeeed9d7322fd
https://kaisery.gitbooks.io/trpl-zh-cn/content/
Rust示例
https://doc.rust-lang.org/stable/rust-by-example/index.html
初学者的Rust中文教程
https://rustcc.gitbooks.io/rustprimer/content/
练习 rustlings
rustlings
https://github.com/rust-lang/rustlings
rustlings-solutions
https://github.com/nonotion/rustlings-solutions
交叉编译
在Ubuntu下编译Windows10的程序
-
rustup toolchain install stable-x86_64-pc-windows-gnu
-
rustup target add x86_64-pc-windows-gnu --toolchain=stable
-
安装linker:
sudo apt install mingw-w64
-
在项目根目录创建
.cargo
目录,然后创建.cargo/config
文件,在config文件里写:(也可以全局配置,即~/.cargo/config
,这里可以配置多个target.xxx和其相关的linker)
[target.x86_64-pc-windows-gnu]
linker = "x86_64-w64-mingw32-gcc"
ar = "x86_64-w64-mingw32-gcc-ar"
也可以指定绝对路径:
linker = "/usr/bin/x86_64-w64-mingw32-gcc"
ar = "/usr/bin/x86_64-w64-mingw32-ar"
cargo build --release --target=x86_64-pc-windows-gnu
,然后在target目录里有x86_64-pc-windows-gnu目录里有release目录可以找到对应可执行文件;
x86_64-pc-windows-gnu的程序用ldd查看也是不依赖动态库的;
wasm
# https://developer.mozilla.org/zh-CN/docs/WebAssembly/Rust_to_wasm
# wasm-pack build 这一步可能很慢
cargo 源配置
https://doc.rust-lang.org/stable/cargo/reference/registries.html
https://doc.rust-lang.org/stable/cargo/reference/source-replacement.html
rustwasm
https://rustwasm.github.io/docs/wasm-pack/commands/test.html
如有错漏,欢迎指正!谢绝转载。