乐趣区

关于rust:RustVS-CodeWSL2LLDB-安装配置调试指南

前言

初学 Rust,思考了许久,打算 Rust+Neon+Node.js+Electron 开发些货色玩一玩
不过在第一步配置环境上就踩了好多坑 ???? 故分享进去……不便大家第一工夫赶到现场讥笑

装置

环境

裂墙举荐 VS Code+WSL2,编辑器抉择 VS Code 无话可说,至于环境为啥举荐 WSL2,起因如下:

  • Windows 环境须要装置 MSVC 生成工具,一通操作就是几个 G,太轻便
  • WSL1 对 LLDB 的反对不太行
  • Linux 零碎对于 Rust 版本还有 Git 依赖治理起来很不便

对于以上第二点,本来我也用的 WSL1,后期始终很顺利,用 GDB 调试也很失常,不过换成 LLDB 之后死活启动不了调试器,遂斗胆换成了 WSL2,而后嘛……真香

尽管不晓得自试用 WSL2 两个月以来产生了什么,然而目前的 WSL2 各方面感觉都蛮优良了

配置 Rust

间接参考官网教程就行了,不过可能须要长期换个源来减速装置:

# 镜像减速,应用的是中科大的源,速度很快
export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup

# 如果执意应用 WSL1,则可能须要设置这个
export RUSTUP_IO_THREADS=1

# 装置命令,后续选项个别默认就好了
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# 增加到 path
source $HOME/.cargo/env
# 我应用的是 fish 须要特地设置
set -U fish_user_paths ~/.cargo/bin $fish_user_paths

# 更改 crates.io 为清华源,这里貌似要比中科大好一些,能够自行测试
cat > ~/.cargo/config
[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"
# <Ctrl+D>

更改工具链的源,增加如下内容到 ~/.cargo/config 文件中

[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"

# 替换成任一镜像源
replace-with = 'tuna'
# replace-with = 'ustc'
# replace-with = 'sjtu'
# replace-with = 'rustcc'

# 清华大学
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"

# 中国科学技术大学
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"

# 上海交通大学
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"

# rustcc 社区
[source.rustcc]
registry = "git://crates.rustcc.cn/crates.io-index"

须要留神的是,尽量不要间接批改 ~/.cargo/config 文件,可能会因为换行符导致 cargo 无奈读取……能够应用如下命令导入

cat >> ~/.cargo/config
# 这里粘贴你的配置文件
[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"
# 按下 Ctrl+D 完结

配置 VS Code

在 VS Code – WSL2 中装置如下扩大:

  • Rust
  • CodeLLDB(须要 WSL2 反对)

对于 CodeLLDB,如果应用 WSL1 或者不想用 LLDB 调试的话,能够装置 C/C++ 扩大,而后应用 GDB 进行调试。

测试

新建个我的项目看下成果:

留神:第一次关上 .rs 文件时,VS Code 右下角会提醒装置工具链,确认装置就好了,这一步最好已配置好国内源,不然会慢死……

而后 运行 关上配置 CodeLLDB 会检测到 .toml 文件,主动生成 launch.json 配置,加点儿代码,放个断点,最初 F5 调试,功败垂成!

参考资料

  • Rust 国内镜像中科大源清华源上交源 rustcc 源
  • rustup panic with WSLv1 + glibc 2.31
退出移动版