作者近期想要学习Liunx系统编程,又想用clion作为ide,但是物理机是一台windows机器,于是想能不能用window下的ide写wsl程序,本文主要参考了这篇文章:https://blog.csdn.net/u010606602/article/details/80782650
首先安装wsl和clion这两步就不做阐述了.
然后配置clion
这里我们可以先在wsl里安装cmake,但是我们会发现这里依然是not found,因为clion是基于ssh调用wsl的,所以我们要先配置wsl的ssh:
在wsl环境中执行官网提供的脚本(用windows powershell 的管理权限进入wsl执行,cmd无法复制黏贴;过程如果发现下载速度很慢可以自己去更新国内的源):wget https://raw.githubusercontent.com/JetBrains/clion-wsl/master/ubuntu_setup_env.sh && bash ubuntu_setup_env.sh 主要也是更新下ssh然后调整下ssh端口,脚本具体内容:
#!/bin/bash
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
# 1.2. 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 '/^UsePrivilegeSeparation/ d' $SSHD_FILE
sudo sed -i '/^PasswordAuthentication/ d' $SSHD_FILE
echo "# configured by CLion" | 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.3. 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
# 3. install basic dependencies
sudo apt install -y cmake gcc clang gdb valgrind build-essential
# summary: SSHD config info
echo
echo "SSH server parameters ($SSHD_FILE):"
echo "Port ${SSHD_PORT}"
echo "UsePrivilegeSeparation no"
echo "PasswordAuthentication yes"
执行完如下
然后选择clion配置界面里credentials后的齿轮配置ssh登录配置
完成后可以看到选项全绿,然后将其上移为默认
然后发现apt安装的cmake版本太低
所以去wsl里wget下载官网最新版cmake
chmod +x给与执行权限然后sudo安装
然后发现只是个简单的解压系统bin里的cmake还是旧版于是
sudo ln -sf ~/cmake-3.20.0-rc2-linux-x86_64/bin/* /usr/bin (这里根据自己的实际解压目录来写)
然后
回clion刷新已经可以正常运行hello world了