Clion+WSL2

我将跟着 official docs官方文档进行操作

如果尚未安装WSL2,请转到此博客 blog

安装WSL2和CLion后,以管理员身份打开PowerShell并运行下面代码

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
image

然后重新启动计算机
打开ubuntu并运行这个命令来安装c++工具

sudo apt-get install cmake gcc clang gdb build-essential

你要等很长时间。(这里我用powershell,建议你用ubuntu来运行这个命令)

image

使用下面的命令来下载运行脚本 script,用于配置ssh等端口设置

wget https://raw.githubusercontent.com/JetBrains/clion-wsl/master/ubuntu_setup_env.sh && bash ubuntu_setup_env.sh

如果您在中国,您可能无法通过此命令下载脚本


image

但别担心,这是脚本的内容

#!/bin/bash
set -e

SSHD_LISTEN_ADDRESS=127.0.0.1
if [ -e "/dev/vsock" ]; then # in case of WSL2
    SSHD_LISTEN_ADDRESS=0.0.0.0
fi

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"

复制此内容,然后跟我来
转到linux文件系统

image

转到此路径并创建一个名为ubuntu_setup_env.sh的txt文本,将内容粘贴到此文件。

image

然后运行下面代码来执行
注意: 当前路径应该是你 ubuntu_setup_env.sh 文件所在的路径

bash ubuntu_setup_env.sh

可以看到他会帮你配置好ssh


image

然后运行这个命令,注意用户名应该是您的用户名

ssh username@localhost -p2222

image

!注意:在使用之前,有一个很大的前提是,你的电脑必须要关系快速启动功能,否则你时无法连接的

然后在Clion中去 Settings / Preferences | Build, Execution, Deployment | Toolchains and click plus icon to create a new toolchain. Select WSL from the Environment list.

image

点击设置 Credentials setting
image

填写你的WSL信息,然后测试连接并确定
image

如果您遇到错误,这意味着您需要配置一个文件,让我告诉您如何解决它。
到你自己对应的路径,类似我的路径,也就是用户的目录
image

创建一个文件名叫 .wslconfig 然后他的内容是

[wsl2]
localhostForwarding=true

保存并在powershell中输入下面的命令关闭你的WSL

wsl --shutdown

再次打开WSL

最后打开你的Clion会发现可以便宜执行代码了!

image

欢迎大家来我的博客: Zhong Wanli
本篇文章的英文版: Clion with wsl2

你可能感兴趣的:(Clion+WSL2)