- Windows 10 20H2
- Clion 2020.2.4
- Ubuntu (Microsoft Store内的WSL发行版)
第一步-为 Linux 安装 Windows 子系统
Install Windows Subsystem for Linux (WSL) on Windows 10docs.microsoft.com1. 启用“ Linux的Windows子系统”可选功能
以管理员身份打开PowerShell并运行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
2. 保证Windows 10版本
- 对于x64系统:版本1903或更高版本,以及内部版本18362或更高版本。
- 对于ARM64系统:2004或更高版本,内部版本19041或更高。
- 低于18362的内部版本不支持WSL2。
3. 在安装WSL 2之前,必须启用虚拟机平台可选功能
以管理员身份打开PowerShell并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重新启动计算机以完成WSL安装并更新到WSL 2。
4. 下载Linux内核更新程序包:
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msiwslstorestorage.blob.core.windows.net(如果使用的是ARM64计算机,请改为下载ARM64软件包。如果不确定所用的机器类型,请打开“命令提示符”或“ PowerShell”并输入:systeminfo | find "System Type"
)
运行在下载的更新程序包。(双击运行-系统将提示您提升权限,选择“是”以批准此安装)
5. 将WSL 2设置为默认版本
wsl --set-default-version 2
6. 安装wsl发行版的Ubuntu(或者其他发行版)
https://www.microsoft.com/zh-cn/p/ubuntu/9nblggh4msv6?activetab=pivot:overviewtabwww.microsoft.com![7c0e808639a434b029f71caf4aa33a83.png](https://img-blog.csdnimg.cn/img_convert/7c0e808639a434b029f71caf4aa33a83.png)
7. 打开、等待安装,并为新的Linux发行版创建一个用户帐户和密码
![22fe7b36535d992b77efcb7c8fa2013f.png](https://img-blog.csdnimg.cn/img_convert/22fe7b36535d992b77efcb7c8fa2013f.png)
(首次创建可能需要等待一两分钟)
8. 最后
- 检查分配给已安装的每个Linux发行版的WSL版本:
wsl -l -v
- 如果要将WSL 2设置为默认体系结构,则可以使用以下命令
wsl --set-default-version 2
- 建议选择Ubuntu(不带数字)并设置WSL版本为2(自带的apt源速度还可以)。
第二步-配置WSL(Ubuntu)
WSL - Help | CLionwww.jetbrains.com![aa6b16503538e899250ffcfcc1f1b3aa.png](https://img-blog.csdnimg.cn/img_convert/aa6b16503538e899250ffcfcc1f1b3aa.png)
- 安装cmake,gcc或/和clang(以及可选的build-essentials软件包)
sudo apt-get update
sudo apt-get install cmake gcc clang gdb build-essential
- 配置并运行ssh-server
wget https://raw.githubusercontent.com/JetBrains/clion-wsl/master/ubuntu_setup_env.sh && bash ubuntu_setup_env.sh
(一般来说这个链接……有问题下载不了,需要使用脚本手动调整)
1. 新建“ubuntu_setup_env.sh”内容如下:
(相比原版脚本更改了“SSHD_LISTEN_ADDRESS”,原版的值是127.0.0.1)
#!/bin/bash
set -e
SSHD_LISTEN_ADDRESS=0.0.0.0
SSHD_PORT=2222
SSHD_FILE=/etc/ssh/sshd_config
SUDOERS_FILE=/etc/sudoers
# 0. update package lists
sudo apt-get update
# 0.1. reinstall sshd (workaround for initial version of WSL)
sudo apt remove -y --purge openssh-server
sudo apt install -y openssh-server
# 0.2. install basic dependencies
sudo apt install -y cmake gcc clang gdb valgrind build-essential
# 1.1. configure sshd
sudo cp $SSHD_FILE ${SSHD_FILE}.`date '+%Y-%m-%d_%H-%M-%S'`.back
sudo sed -i '/^Port/ d' $SSHD_FILE
sudo sed -i '/^ListenAddress/ d' $SSHD_FILE
sudo sed -i '/^UsePrivilegeSeparation/ d' $SSHD_FILE
sudo sed -i '/^PasswordAuthentication/ d' $SSHD_FILE
echo "# configured by CLion" | sudo tee -a $SSHD_FILE
echo "ListenAddress ${SSHD_LISTEN_ADDRESS}" | sudo tee -a $SSHD_FILE
echo "Port ${SSHD_PORT}" | sudo tee -a $SSHD_FILE
echo "UsePrivilegeSeparation no" | sudo tee -a $SSHD_FILE
echo "PasswordAuthentication yes" | sudo tee -a $SSHD_FILE
# 1.2. apply new settings
sudo service ssh --full-restart
# 2. autostart: run sshd
sed -i '/^sudo service ssh --full-restart/ d' ~/.bashrc
echo "%sudo ALL=(ALL) NOPASSWD: /usr/sbin/service ssh --full-restart" | sudo tee -a $SUDOERS_FILE
cat << 'EOF' >> ~/.bashrc
sshd_status=$(service ssh status)
if [[ $sshd_status = *"is not running"* ]]; then
sudo service ssh --full-restart
fi
EOF
# summary: SSHD config info
echo
echo "SSH server parameters ($SSHD_FILE):"
echo "ListenAddress ${SSHD_LISTEN_ADDRESS}"
echo "Port ${SSHD_PORT}"
echo "UsePrivilegeSeparation no"
echo "PasswordAuthentication yes"
2. 在相对位置给“ubuntu_setup_env.sh”增加运行权限并运行:
sudo chmod +x ubuntu_setup_env.sh
bash ubuntu_setup_env.sh
3. 在WSL环境内运行(端口号可根据“ubuntu_setup_env.sh”内设置进行调整):
ssh username@localhost -p2222
username为第一步安装WSL时创建的用户名,注意替换。
第三步-配置Clion 内的 Toolchains
1. 转到 Settings / Preferences | Build, Execution, Deployment | Toolchains,从环境列表中选择WSL。CLion会自动检测已安装的发行版,或者手动设置路径。
2. 提供远程凭据:选择一种SSH配置或创建一个新的SSH配置。
![cbf180058a1a89a2fb758b813ed02185.png](https://img-blog.csdnimg.cn/img_convert/cbf180058a1a89a2fb758b813ed02185.png)
第四步-配置Clion 内的 Terminal
- 转到 Settings / Preferences | Tools | Terminal ,修改“application settings”内的“shell path”为:
"C:UsersusernameAppDataLocalMicrosoftWindowsAppsubuntu.exe" run
(注意将“username”替换为本机用户,“ubuntu.exe”会因为安装的版本有所差异)
第五步-配置Clion 内的 Coverage
在运行“Run with Coverage”的时候提示“gcov tool is not found”,解决办法如下:
- 转到 Settings / Preferences | Build, Execution, Deployment | Coverage ,修改“Tools”内的“gcov”为(非Ubuntu……根据情况修改):
wsl$Ubuntuusrbingcov
第六步-配置Clion 内的 Valgrind
在运行“Run with Valgrind Memcheck”的时候提示“Valgrind executable is not found”,解决办法如下:
转到 Settings / Preferences | Build, Execution, Deployment | Dynamic Analysis Tools | Valgrind ,修改“Valgrind executable”为(非Ubuntu……根据情况修改):
wsl$Ubuntuusrbinvalgrind