如何在VSCode中配置WSL环境实现Windows下的Linux开发

浅丽小哥_7885

浅丽小哥_7885

2026-04-11

500人浏览

原创

remote-wsl扩展未安装或未启用会导致vscode状态栏不显示wsl标识;必须在wsl终端中执行code .启动项目,且调试器路径、git配置等均需指向wsl内部环境。

如何在vscode中配置wsl环境实现windows下的linux开发

WSL扩展没装或没启用,Remote-WSL 按钮不出现

VSCode 本身不自带 WSL 支持,必须通过官方扩展 Remote-WSL 激活远程开发能力。没装它,所有后续配置都无效。

安装路径很直接:打开 VSCode → 左侧扩展图标(或 Ctrl+Shift+X)→ 搜索 Remote-WSL → 点击“Install”。注意选微软官方发布的那个(Publisher 是 Microsoft),别误装第三方仿名插件。

装完后重启 VSCode(不是仅重载窗口),再打开任意文件夹,状态栏右下角应该出现 WSL: Ubuntu(或你实际发行版名)——这是真正生效的标志。如果没出现,大概率是 WSL 本身没跑起来,先在 Windows 终端里执行 wsl -l -v 确认有运行中的发行版。

用 code . 命令在 WSL 中打开项目,而不是在 Windows 下双击启动

很多人习惯在 Windows 文件资源管理器里双击 VSCode 图标打开项目,结果编辑器还是运行在 Windows 环境下,PATH、编译器、依赖全不对。正确做法是:进入 WSL 终端(比如 Ubuntu),cd 到你的项目目录,然后运行 code .。

这个命令会触发 Remote-WSL 扩展,在 WSL 中拉起一个轻量服务,并把 VSCode 前端连接过去。此时所有终端、调试、任务都默认走 WSL 环境。

常见误区:

  • code . 必须在 WSL 的 shell 里执行,不能在 Windows PowerShell 或 CMD 里跑
  • 如果提示 command not found: code,说明 VSCode 没把 server 脚本注入 WSL PATH,运行一次 echo 'export PATH="$PATH:/mnt/c/Users/xxx/AppData/Local/Programs/Microsoft VS Code/bin"' >> ~/.bashrc && source ~/.bashrc(路径按你本地 VSCode 安装位置调整)
  • 项目路径建议放在 WSL 文件系统里(如 /home/username/project),避免跨 /mnt/c 访问 Windows 文件,否则文件监控、符号链接、权限等行为异常

调试 C/C++ 时 launch.json 的 miDebuggerPath 必须指向 WSL 内路径

即使 VSCode 已连上 WSL,C/C++ 扩展默认仍可能试图调用 Windows 下的 gdb.exe,导致调试失败或报错 Unable to start debugging. Cannot launch program...。

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载

解决办法是在项目根目录的 .vscode/launch.json 中显式指定调试器路径:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "gdb (WSL)",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}/${fileBasenameNoExtension}",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${fileDirname}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "miDebuggerPath": "/usr/bin/gdb",
      "setupCommands": [...]
    }
  ]
}

关键点:

  • miDebuggerPath 值必须是 WSL 内部路径(如 /usr/bin/gdb),不能写 /mnt/c/... 或 Windows 风格路径
  • 确保 WSL 中已安装 gdb:sudo apt update && sudo apt install gdb
  • 如果用 clang++ 编译,也得确认 WSL 里装了对应工具链,Windows 下的 LLVM 不会被自动复用

Git 提交时用户名和邮箱未继承 WSL 配置,提交记录显示为 Windows 用户

VSCode 在 WSL 模式下仍可能读取 Windows 的 Git 全局配置(%USERPROFILE%\.gitconfig),导致 commit 作者信息错乱,尤其当你在 WSL 和 Windows 两端混用 Git 时更明显。

最稳妥的做法是:在 WSL 终端中单独配置 WSL 的 Git 用户信息,并禁用 Windows 配置的干扰:

  • 执行 git config --global user.name "Your Name" 和 git config --global user.email "you@example.com"(在 WSL 终端里)
  • 检查是否生效:git config --list --show-origin,确认 user.name 和 user.email 来自 /home/username/.gitconfig,而非 file:C:/Users/...
  • 如果看到 Windows 路径优先级更高,可临时禁用:git config --global core.systemconfig false(不推荐长期关,只用于排障)

这个细节容易被忽略,但直接影响协作时的提交可信度和 GitHub/GitLab 账户绑定。

WSL 开发真正的复杂点不在安装,而在环境归属感的切换——VSCode 界面在 Windows 上,但所有底层行为必须彻底“下沉”到 WSL 语境里。路径、工具链、配置、甚至 shell 初始化逻辑,一旦有一环还粘着 Windows,问题就会以各种奇怪方式冒出来。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux vscode windows

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

2035

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

2962

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

996

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

3339

7

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

2026.01.21

8385

27

GitHub官网入口版本汇总
GitHub官网入口版本汇总

本专题整合了GitHub入口版本地址汇总,阅读专题下面的文章了解更多详细内容。

2026.04.02

818

19

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

2023.07.05

5699

9

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

2023.07.06

1700

6

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

2023.07.24

994

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习