您现在的位置是:首页 >学无止境 >VSCode搭建Rust开发环境网站首页学无止境

VSCode搭建Rust开发环境

静悦时光 2025-07-28 12:01:04
简介VSCode搭建Rust开发环境

1. VSCode 搭建 Rust 开发环境

本文以 Windows VSCode + WSL 开发环境搭建为例,其它开发环境类似

1、安装 WSL,参看《离线安装WSL & 导出与导入WSL(60)

2、在 WSL 中安装 c/c++编译环境(Rust 依赖 gcc):

apt install build-essential

运行此命令会自动安装 gcc,g++,make 等工具。

3、在 WSL 中安装 Rust 编译工具。

方法 1:直接按照官网教程在线安装

在 WSL 的 shell 终端运行如下命令,接着按照提示操作即可:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

方法 2:用国内源安装

因为方法 1 是用国外源在线安装,可能比较慢,若下载缓慢,则可以使用国内源安装。

来源:rust 使用国内镜像,快速安装方法 - SnailRush - 博客园

(1) 根据平台下载 "rustup-init"

wget https://mirrors.ustc.edu.cn/rust-static/rustup/dist/x86_64-unknown-linux-gnu/rustup-init

其中 "x86_64-unknown-linux-gnu" 是对应的平台,可从官网找到所有支持的平台:

(2) 安装 rust 开发环境

chmod +x rustup-init
RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup ./rustup-init

会把相应的组件安装在 ~/.rustup 和 ~/.cargo 目录下,并修改用户的环境变量配置文件 ~/.profile 和 ~.bashrc

其它支持的国内源:

# 清华大学
RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup

# 中国科学技术大学
RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup

# 上海交通大学
RUSTUP_DIST_SERVER=https://mirrors.sjtug.sjtu.edu.cn/rust-static/

经验实测,用中科大的比较好。实测时使用清华大学的源在用 rustup 下载某些包时提示找不到。

4、安装 VSCode。

5、安装 Rust 插件:

rust-analyzer

简介:Rust language support for Visual Studio Code.

Error Lens

简介:更好的错误提示。

vscode-rustfmt

简介:Rust 格式化工具。

Even Better TOML

简介:TOML 支持。

6、在 WSL shell 终端创建一个 Rust 工程:cargo new greeting

【说明】

运行完此命令会在当前目录下构建一个名叫 greeting 的 Rust 工程目录。

7、用 VSCode 在 WSL 环境下打开 greeting 目录,会看到如下目录结构:

8、直接在 VSCode 中点击 "运行" > "启动调试/以非调试模式运行"。首次会提示错误,点击确定后会自动帮你创建 launch.json 文件(前提是正确安装了 Rust 所需的插件),等 launch.json 文件创建完毕后,再次在 VSCode 中点击 "运行" > "启动调试/以非调试模式运行" 就能以调试或非调试模式运行代码了。

若没有自动创建 launch.json 文件,则自己手动创建,并放于工程的 .vscode 目录下。

launch.json 文件内容:

{
  // 使用 IntelliSense 了解相关属性。
  // 悬停以查看现有属性的描述。
  // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "type": "lldb",
      "request": "launch",
      "name": "Debug executable 'greeting'",
      "cargo": {
        "args": [
          "build",
          "--bin=greeting",
          "--package=greeting"
        ],
        "filter": {
          "name": "greeting",
          "kind": "bin"
        }
      },
      "args": [],
      "cwd": "${workspaceFolder}"
    },
    {
      "type": "lldb",
      "request": "launch",
      "name": "Debug unit tests in executable 'greeting'",
      "cargo": {
        "args": [
          "test",
          "--no-run",
          "--bin=greeting",
          "--package=greeting"
        ],
        "filter": {
          "name": "greeting",
          "kind": "bin"
        }
      },
      "args": [],
      "cwd": "${workspaceFolder}"
    }
  ]
}

如果一个 Rust 包中既有库 creat 和二进制 creat,VSCode 中的调试按钮会自动运行库的测试代码,但是我们其实想调试的是二进制 creat。这是因为生成的 launch.json 第一项是库相关的,删除即可。

2. 离线安装 Rust 开发环境

说明:

  1. "本机环境" 指的是可以联网的环境,"离线环境" 指的是不可以联网的离线环境。
  2. 本机平台和离线平台需要一样,例如都是 Linux 环境,不适用于本机平台是 Windows,而离线平台是 Linux。

步骤:

1、首先在本机环境,搭建 Rust 开发环境。

2、然后把本机环境用户目录下的 ~/.cargo 和 ~/.rustup 打包并上传到离线环境的用户目录下,然后解压到离线环境的用户根目录下。

参考脚本:upload_rust_dev.sh

#!/bin/bash

user_ip="zhangdongyu@10.234.75.230"

# 打包本机Rust开发环境
cd ~
tar czvf cargo.tar.gz .cargo
tar czvf rustup.tar.gz .rustup

# 上传到远端并解压
scp cargo.tar.gz rustup.tar.gz ${user_ip}:~
ssh ${user_ip} "cd ~; tar xvf cargo.tar.gz; tar xvf rustup.tar.gz"

# 删除本机压缩包
rm -rf cargo.tar.gz rustup.tar.gz

# 删除远端压缩包
ssh ${user_ip} "cd ~; rm -rf cargo.tar.gz rustup.tar.gz"

3、在离线环境用户的 "profile" 文件 (CentOS 为 ~/.bash_profile;Ubuntu 为 ~/.profile) 和用户的 ~/.bashrc 文件的末尾各添加一句话:

. "$HOME/.cargo/env"

注意有个点 .,在 Linux shell 中 . 是 source 指令的缩写。

4、离线环境的 Rust 开发环境至此已搭建完毕,在离线环境重新打开一个新终端测试:

[20:23:46  rust]$ rustc --version
rustc 1.81.0 (eeb90cda1 2024-09-04)
[20:23:47  rust]$ cargo --version
cargo 1.81.0 (2dbb1af80 2024-08-20)

若可以打印出版本号,则说明离线环境已成功安装 Rust 开发环境。

3. cargo 配置国内镜像源

在 ~/.cargo/config.toml 进行源和代理的配置。

字节跳动源:

[source.crates-io]
replace-with = 'rsproxy'

[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"

# 稀疏索引,要求 cargo >= 1.68
[source.rsproxy-sparse]
registry = "sparse+https://rsproxy.cn/index/"

[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"

[net]
git-fetch-with-cli = true
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。