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的程序

  1. rustup toolchain install stable-x86_64-pc-windows-gnu

  2. rustup target add x86_64-pc-windows-gnu --toolchain=stable

  3. 安装linker:
    sudo apt install mingw-w64

  4. 在项目根目录创建 .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"
  1. 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

posted @ 2020-07-01 10:36  一年`  阅读(732)  评论(0编辑  收藏  举报