WSL安装、美化、网络代理和远程开发

本文介绍了如何在Windows上通过WSL(Windows Subsystem for Linux)和Clion搭建C++项目开发环境。详细步骤包括安装WSL,美化终端(OhMyPosh和OhMyZsh),设置WSL通过Windows代理,以及配置JetBrains的Clion进行远程开发。通过这个环境,开发者可以在Clion中编写代码,利用WSL进行构建和编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在学习CMU15445,需要使用c++完成project,官方推荐基于linux构建和编译。考虑到效率问题,不想在云服务上配置linux环境,刚好之前听闻过WSL,于是基于WSL+Clion+CMake搭建了一个开发环境。在Clion编写代码,然后利用Clion提供的远程开发工具在WSL中构建和编译。本文记录了开发环境的的配置过程。

NOTE:本文主要提供解决方案的来源,不做官方文档和其他博客的搬运工,具体的操作步骤请参考文中链接。

WSL安装、美化、网络代理和远程开发

1.安装WSL和Linux发行版

WSL是微软推出的为Windows专门优化过的Linux虚拟机。

如果WSL没有开启,我们首先需要开启WSL。然后重启计算机。

WSL上面可以安装各种Linux系统,可以通过Windows Store安装,也可以通过命令行安装。

由于Windows Store可能出现网络问题(网络问题0x800704cf解决方案:在 Windows 上修复错误代码 0x800704cf 的方法),推荐使用命令行安装。

安装流程见官方文档 - Install Linux on Windows with WSL

2.终端美化

默认的Windows terminal的终端并不好看,而且缺少必要信息。推荐使用Oh My Posh美化PowerShell,使用oh my zsh美化linux终端。

Oh My Posh

安装

安装Oh My Posh,详情见官网教程 - install

配置profile,在Powershell打开时默认加载样式,详情见官网教程 - prompt

主题

配置样式,配置方法见官网教程 - customize。Oh My Posh提供了很多默认的样式,可以在theme页面查看。oh my posh通过指定样式json文件设置样式,如果官网提供的方法找不到该文件,也可以通过直接提供样式的绝对路径。

我选择jandedobbeleer主题,profile如下

oh-my-posh init pwsh --config C:\Users\admin\AppData\Local\Programs\oh-my-posh\themes\jandedobbeleer.omp.json | Invoke-Expression
解决乱码问题

Oh My Posh的一些主题使用了特殊字符,需要特定的字体才能正确显示。

一般安装两种字体Powerline fonts & Nerd fonts

Powerline 是一款 Vim statusline 的插件,它用到了很多特殊的 icon 字符。Powerline fonts 是一个字体集,本质是对一些现有的字体打 patch,把 powerline icon 字符添加到这些现有的字体里去,目前对 30 款编程字体打了 patch.

Nerd font 的原理和 Powerline fonts 是一样的,也是针对已有的字体打 patch,把一些 icon 字符插入进去。不过 Nerd font 就比较厉害了,是一个“集大成者”,他几乎把目前市面上主流的 icon 字符全打进去了,包括上面刚刚提到的 powerline icon 字符以及 Font Awesome 等几千个 icon 字符。

安装完字体之后,需要在windows terminal的JSON设置文件中设置字体,才能生效。

最终效果图如下:

oh my zsh

安装

安装过程见官方文档。首先安装zsh,然后安装oh my zsh。

主题

Powerlevel10k is a theme for Zsh. It emphasizes speed, flexibility and out-of-the-box experience.

powerlevel10k是一个zsh的非常受欢迎的主题。安装方式见官网文档getting-started。第一次安装会提供设置向导,跟着提示走就可以了。

3.WSL走Windows代理

默认情况下,WSL不会走Windows的代理,需要单独设置。

WSL和Windows处于同一个局域网下,WSL是一个虚拟主机。因此需要首先打开Clash的允许局域网访问的开关,并且设置防火墙域网络。原理说明

由于使用了其他杀毒软件,我选择直接关闭防火墙。

尝试了不同的方案,最终基于TAP代理成功。开启TAP驱动的方式见官方文档 - TAP模式。主要参考了wsl2 怎么设置才能走 clash 的代理?37楼的解决方案

尝试过TAN模式,但没成功。

4.JetBrain远程开发

对于C++开发,首先在Linux中安装一个make工具,例如CMake,然后Clion设置WSL作为默认的开发工具链,Clion会自动识别构建和编译工具。具体操作过程见官方文档 - WSL

设置成功后,Clion会使用WSL的环境进行构建和编译。

如果觉得本文有帮助,可以点个赞再离开~

<think>好的,我现在需要解决用户在WSL2安装图形化界面后远程连接时出现闪退的问题。首先,我需要回忆一下相关的知识,并结合提供的引用内容来找出可能的原因解决方案。 根据用户提供的引用,特别是引用[2]引用[3],WSL2支持图形化界面(WSLg),并且可以通过更新到支持WSLg的版本来实现图形应用的显示。用户可能在安装图形界面后尝试远程连接,比如使用远程桌面工具连接WSL2的桌面环境,但遇到了闪退的问题。 可能的原因有几个方面: 1. **WSL版本过旧**:用户可能没有将WSL更新到支持WSLg的版本,导致图形界面不稳定。 2. **配置问题**:VcXsrv或X11转发的配置不正确,或者防火墙设置阻止了连接。 3. **GPU驱动问题**:WSLg需要支持DirectX 12的GPU驱动,如果驱动不兼容或未更新,可能导致闪退。 4. **内存或资源限制**:WSL2的虚拟机可能因为内存不足而崩溃,尤其是在运行图形界面时资源需求较高。 5. **软件冲突**:某些后台程序可能与WSL2的图形子系统冲突,导致远程连接失败。 接下来,我需要根据这些可能的原因,逐步提供解决方案。例如,检查WSL版本是否更新到最新,确保VcXsrv的配置正确,关闭访问控制,更新GPU驱动,调整内存分配等。同时,引用[3]提到WSLg可以直接在Windows应用列表里打开图形程序,可能不需要额外的远程连接工具,这也是一个需要注意的点。如果用户使用的是远程桌面工具而非WSLg原生支持的方式,可能需要调整方法,直接使用WSLg的功能。 此外,用户提到的VSCode调试闪退问题(引用[1])可能与WSL的环境配置有关,但当前问题主要聚焦于图形界面远程连接,暂时可以不深入这部分,除非发现有关联。 最后,需要验证这些步骤的有效性,并建议用户逐一尝试,同时检查日志文件以获取更具体的错误信息,帮助进一步诊断问题。</think>针对WSL2安装图形化界面后远程连接闪退的问题,以下是分步解决方案: ### 1. 确认WSLg版本兼容性 - **步骤**:在Windows PowerShell中运行`wsl --version`,确保WSL版本≥**0.67.6**(支持WSLg的最低版本)。 - **操作**:若版本过低,执行: ```powershell wsl --update wsl --shutdown ``` 重启WSL实例后尝试通过`gedit`等图形程序测试[^3]。 --- ### 2. 检查远程连接工具配置 - **若使用VcXsrv/X410**: 1. 启动时勾选**Disable access control**(关闭访问控制)。 2. 在WSL中设置环境变量: ```bash export DISPLAY=$(awk '/nameserver / {print $2}' /etc/resolv.conf):0 ``` 3. 测试运行`xeyes`或`gedit`观察是否正常显示。 - **若使用远程桌面协议(RDP)**: 1. 在WSL安装`xrdp`: ```bash sudo apt install xrdp -y sudo service xrdp start ``` 2. Windows端用**远程桌面连接**访问`localhost:3390`,使用WSL用户名/密码登录。 --- ### 3. 更新GPU驱动程序 - **原因**:WSLg依赖DirectX 12 GPU加速,驱动不兼容会导致崩溃。 - **操作**: 1. 访问显卡厂商官网下载最新驱动(NVIDIA/AMD/Intel)。 2. 安装后重启主机,在WSL中运行: ```bash glxinfo -B | grep "OpenGL renderer" ``` 确认输出包含**D3D12**字样。 --- ### 4. 调整WSL2资源分配 - **内存不足处理**: 1. 创建或修改`%USERPROFILE%\.wslconfig`文件: ```ini [wsl2] memory=4GB # 根据物理内存调整,建议≥4GB processors=2 localhostForwarding=true ``` 2. 重启WSL:`wsl --shutdown`后重新打开终端。 --- ### 5. 查看错误日志定位问题 - **步骤**: 1. 在WSL终端启动图形程序时添加日志输出: ```bash LIBGL_DEBUG=verbose gedit 2> ~/gedit_errors.log ``` 2. 检查日志中`error`或`failed`字段,例如: - `Could not open X display` → DISPLAY变量错误 - `D3D12CreateDevice failed` → GPU驱动问题 --- ### 典型成功案例配置 | 组件 | 推荐版本/配置 | |--------------|---------------------------| | Windows版本 | Windows 11 22H2或更高 | | WSL内核版本 | ≥5.15.90.1 | | 图形工具 | WSLg原生支持(无需第三方) | | GPU驱动 | NVIDIA 535+/AMD 22.11+ |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值