window下jetBrains Clion使用wsl安装配置 c++开发神器

    • 背景
    • 准备
    • 安装WSL(Windows Subsystem for Linux) ubuntu系统
    • 安装配置jetBrains CLion
    • 验证、测试CLion功能
    • 参考文章

背景

  • 没啥背景纯属个人笔记,记录下安装过程及一些遇到问题的处理,给需要的网友作为一个参考;
    目前从事c++开发,一次偶然的机会接触了一阵子的java认识了JetBrains的IDEA,后面继续搜罗发现了JetBrains下有一套全家桶工具包括java的IDEA、c++的CLion、python的pyCharm…一系类软件,且他们的快捷键基本是通用的。而目前由于做的c++是基于linux环境开发的,基本就是source insight、notepad++、FlashFxp等作为开发的一些工具;如果平时编写代码用source insight感觉不怎么理想没法做到一些语法校验及一些模板编程,用它看大型工程代码还是挺方便启动、加载、跳转正确性都是很棒的;而Clion又都具备这些功能包括ftp、svn、语法校验(这个要居于套件工具mingw、cygwin、wsl之类)、编程过程中的代码模板等等所以想尝试下这东东;过程中也搞过qt creator 和mingw、cygwin,感觉也不是很好用,后来得知win10 系统下有个WSL(Windows Subsystem for Linux) 他支持linux上面的可执行文件能直接拿到wsl上面直接运行,这几个具体的差异这里不作描述可以自行查找资料。最后就决定用CLion与WSL配套作为新的开发IDE,以下就是自己在安装配置环境一些过程在此写下笔记当作分享也好。

准备

  • win10最新系统,我这边当前能升级的最新版本为17134.112(因为swl是只有在win10系统下才有的)
  • Clion下载:https://www.jetbrains.com/clion/

安装WSL(Windows Subsystem for Linux) ubuntu系统

  • 网上的教程有很多,以下是我的安装过程:
    • 升级当前win10为最新的系统,否则在“启用或关闭Windows功能”中会找不到“适用于Linux的Windows子系统”
    • 勾选安装wsl前提条件:控制面板=>程序和功能=>启用或关闭Windows功能=>勾选 适用于Linux的Windows子系统(当然也可以像网友提供的直接在管理员权限的windown power shell下执行: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
      window下jetBrains Clion使用wsl安装配置 c++开发神器_第1张图片
    • 做完以上步骤然后直接重启系统
    • 系统启动成功后打开运用商场(如果已经卸载了可以网上找下装回来),直接搜索wsl找到Ubuntu选个合适版本(我是直接选下载量大的那个)Ubuntu的安装过程不需要选择路径都是直接安装在c盘
      window下jetBrains Clion使用wsl安装配置 c++开发神器_第2张图片
    • 安装成功后打开应用,在系统的软件安装列表中能找到ubuntu的图标,可以打开它运行初始化工作,也可以通过在win+R或者cmd中输入wsl、bash、安装的系统名(这里是ubuntu)启动它
      window下jetBrains Clion使用wsl安装配置 c++开发神器_第3张图片
  • 配置调整过程:
    • 第一次启动初始化工作:设置用户名、密码,成功登入后可以设置root密码,root默认是没有密码的直接sudo su即可进入root用户,然后通过sudo passwd root 设置root密码;
    • 在cmd或者power shell做常规设置(管理员权限运行),
      • 设置bash、wsl启动的默认linux系统:wslconfig /setdefault [Linux_System_name(我这里是Ubuntu)]
      • 还有一些wslconfig的命令比如:
        • 卸载:wslconfig /unregister [Linux_System_name(我这里是Ubuntu)
        • 查看已经安装的系统列表:wslconfig /list
      • 设置bash、wsl默认登入的用户(这个还有配合默认系统系统,我这边安装的ubuntu所以命令开头是ubuntu):ubuntu config --default-user root
  • 更换/etc/apt/sources.list的源提高安装下载速度这里我们网友提供的清华大学的源;备份/etc/apt/sources.list文件之后直接覆盖填写下面的源
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main multiverse restricted universe

#这里要注意下每条源中ubuntu/后面的 xenial是对应系统的版本代号,可以通过查看版本代号做相应调整
lsb_release -a  #查看当前系统的信息
Distributor ID: Ubuntu #类别是ubuntu
Description:    Ubuntu 16.04.4 LTS #16年4月2日发布的稳定版本,LTS是Long Term Support:长时间支持版本  三年 ,一般是18个月
Release:    16.04 #发行日期或者是发行版本号
Codename:   xenial #ubuntu的代号名称

  • wsl系统与windwon系统的路面映射关系:
    • windwon系统在wsl中的路径都是挂载在/mnt下面
      window下jetBrains Clion使用wsl安装配置 c++开发神器_第4张图片
    • wsl在windown中的映射路径在(友情提示不要直接修改其内容):%localappdata%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
      window下jetBrains Clion使用wsl安装配置 c++开发神器_第5张图片
  • 到此window下的wsl环境安装配置算告一段落了。

安装配置jetBrains CLion

  • 安装CLion:
    • 通过一开始准备中下载好的CLion安装包之后直接点击安装 一路next 到结束,后面运行
      window下jetBrains Clion使用wsl安装配置 c++开发神器_第6张图片
  • CLion配置
    • 启动是选择不导入设置:
      window下jetBrains Clion使用wsl安装配置 c++开发神器_第7张图片
    • UI风格随便选择一个直接next
      window下jetBrains Clion使用wsl安装配置 c++开发神器_第8张图片
    • 到了ToolChains也就编译环境配置,这里我安装的CLion版本时CLion-182.3341.14.exe在下图中可以看到是没有wsl选项的所以这里next后面在设置(这个应该是clion的一个小bug)
      window下jetBrains Clion使用wsl安装配置 c++开发神器_第9张图片
    • 接下去就全部next直到welcone to CLion界面
      window下jetBrains Clion使用wsl安装配置 c++开发神器_第10张图片
    • 根据CLion的官方教程需要在设置上图中的两个红框内容,1格式编译环境设置、2个是由于wsl的的文件系统是区分大小写的而windonw中没有所有第二个需要做一个配置(以下两个步骤根据官网提法方法配置:https://confluence.jetbrains.com/display/CLION/WSL+dev+environment+configuration)
      • 配置编译环境选择上图中的红色方框1然后按一下图选择发现目前还是不能用的,先安装官网提供的方法调整wsl的ssh服务且调整下端口(因为ssh默认端口22是和windown冲突的)
        window下jetBrains Clion使用wsl安装配置 c++开发神器_第11张图片
      • 在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"
  • 测试ssh是否成功:ssh username@localhost -p2222 同时也可以用类似xshell的工具校验是否能成功连接无法成功连接一般就是ssh服务有问题查看对应端口是否有开启监听(注意这里测试的用户名不要用root用一般用户即可,root用户默认是不允许ssh的如果没有调整相应配置ssh是会提示权限不足的)
  • 这里要注意上面测试虽然能成功如果接着xshell、crt等工具能正常连接wsl,但是clion无法连接wsl是因为:由于SSH默认情况下连接时会都会碰到提示“是否要继续的内容”Are you sure you want to continue connecting (yes/no)? 要确认输入yes后才会继续,这将会导致CLion的wsl的Credentials出现Cannot establish connection 错误,所以这里我们要再次调整下SSH的配置将提示去除:

    sudo vi /etc/ssh/sshd_config
    #找到下面StrictHostKeyChecking然后将前面注释#去除后面改为no如下
    StrictHostKeyChecking no
    #保存文件后重启ssh服务
    sudo service ssh --full-restart # 或者sudo /etc/initd.d/sshd restart

    • 返回CLion中调整下端口填写下用户名(注意这里不要用root用户作为连接因为系统默认root用户是不允许ssh连接登入的除非做了配置调整):
      window下jetBrains Clion使用wsl安装配置 c++开发神器_第12张图片
  • 配置成功点击apply->ok(如果没有做上面调整ssh调整提示是否继续时将会导致连接没法成功)
    window下jetBrains Clion使用wsl安装配置 c++开发神器_第13张图片
  • 根据官方说明调整因为wsl文件系统区别会大小写,而window不区别问题;需要添加idea.case.sensitive.fs=true 属性,两种方法可以调整这个参数;
    • 法1在一开始打开的welcone to CLion界面下面的第一个圈Edit Custom Properties…
      window下jetBrains Clion使用wsl安装配置 c++开发神器_第14张图片
    • 法2通过Help -> “Edit Custom Properties…
      window下jetBrains Clion使用wsl安装配置 c++开发神器_第15张图片

验证、测试CLion功能

  • 通过welcone to CLion界面直接new project接着到下面界面然后create
    window下jetBrains Clion使用wsl安装配置 c++开发神器_第16张图片
  • 默认情况工程只有一个main函数里面简单的std::cout << "Hello, World!" << std::endl;最终结果如下
    window下jetBrains Clion使用wsl安装配置 c++开发神器_第17张图片

  • 到此环境部署一键完成了,具体至于CLion一些用法及设计CMake的技术这里不再阐述

  • 最后这里还有注意一点由于我们之前配置CLion时时用ssh连接到wsl的,所以平时想要用CLion就要确保wsl的ssh服务是打开的状态;所以我们要这里设置电脑一开机就启动bash(也就wsl、ubuntu)来确保ssh是开的状态;这里采用的是windows自带的定时任务机会直接把开机启动wsl的ubuntu具体步骤参考网上的文章(https://www.jianshu.com/p/039411d2c1f6)步骤如下:
    使用windows自带的定时任务计划上添加开机启动Ubuntu ssh服务的任务。
    搜索“任务计划程序”,操作– 创建基本任务
    触发器:当计算机启动时
    操作:启动程序
    程序名:bash.exe
    参数为-c \”sudo /usr/sbin/sshd -D\”” 意思是打开bash,执行sshd命令开启ssh服务(这边我们可以不用,因为官网教程中的脚本已经把ssh服务调整为执行bash时直接启动了ssh服务了所以这里参数我们不用输入)
    选择“点击完成打开属性页”按钮,点击完成,打开属性页
    在属性页选择“使用最高权限运行”,避免错误。、
    以上配置后,每次开机都会自动打开bash,可以直接使用xshell连接你的ubuntu on Linux
    window下jetBrains Clion使用wsl安装配置 c++开发神器_第18张图片

  • ok到此笔记完结!!!

参考文章

  • https://www.cnblogs.com/JettTang/p/8186315.html
  • https://blog.csdn.net/zilaike/article/details/78922524
  • https://www.jianshu.com/p/039411d2c1f6
  • https://www.jetbrains.com/help/clion/how-to-use-wsl-development-environment-in-clion.html
  • https://www.youtube.com/watch?v=xnwoCuHeHuY
  • https://confluence.jetbrains.com/display/IDEADEV/Filesystem+Case-Sensitivity+Mismatch
  • https://blog.csdn.net/jianxia1956/article/details/54695066
  • https://www.cnblogs.com/Franken-Fran/articles/install_wsl.html

你可能感兴趣的:(CLion,WSL,工具,编程系列,linux)