admin 管理员组文章数量: 887019
终于有点时间把Windows下的Clion折腾的能够直接跑起来Linux下的的C/C++项目。本文内容主要参照了Azraelcc的使用CLion和Linux子系统在Windows10系统中开发C/C++程序 的部分操作。
本文主要面向的是已有的Linux Cmake项目的部署执行,调试修改,不是自己创建环境后新建项目,不过也是可行的。
1. 简单介绍
因为我搬项目到windows的时候,Ubuntu 20 已经推出了,所以在windows商店可以直接选择最新的版本。
有一说一,Ubuntu20的界面和功能改进了很多,相比起之前的版本很舒服。不过虚拟机下的总归是无法完全利用电脑的性能,比如我目前的项目一个单元测试,就要跑20分钟,对大规模数据的处理虽然能够撑起来,但是总感觉很吃力。
所以,干脆直接搬到windows上的Clion跑。但最困难的事情是,手头的项目,所有的Cmake文件全部是基于Linux内部的动态库,Windows的Clion甚至连 ./configure.sh都不能完全配置成功,Powershell虽然支持Linux的命令行,但是却总归不能指望也能用sudo apt-get来安装工具和缺失的动态库吧。
这个时候,WSL就为这种情况提供了一个相对完美的解决方案,你可以只利用子系统来为Clion提供Linux的运行环境,编译工具,各种动态库。而不必特别配置Linux的操作界面以及别的乱七八糟的软件。如果你非常喜欢Linux的话,大可以再配置一台略渣的电脑作为Linux本。WSL的好处就在于,它不太吃资源,你完全安装,配置好所有的运行环境,编译器,加起来也就不到3GB,而且最大的好处就在于它省去了虚拟机的资源,以及完全利用机器的硬件资源。就和你在windows进行一般的开发没有任何区别,无非就是用的时候把SSH的服务打开,我不喜欢计划任务,所以用的时候才打开,也不费事,就是一句命令行,然后就打开Clion开发就行了。
废话结束,简单说说这篇文章做与不做的事情
这篇文章不做的事情:
1. Windows下的Clion的安装
2. Windows自带子系统的安装
这两个安装只需要默认安装就可以了,不需要做任何额外的配置,需要做的任何配置都在后边。而且网上的教程已经非常丰富完善了,也可以参考引言的博文链接,不再赘言。
这篇文章做的事情:
1. Linux配置SSH
2. Linux必备安装的编译工具
3. Clion的配置
4. 运行项目
2. 配置SSH
在参考的博文中已经很详细了,但有的部分在Ubuntu 20 中并不需要配置,而且第一次安装,SSH服务配置文件全部都是注释掉的,所以这里就根据我遇到的情况介绍一下:
给新手提示:使用Vi编辑文档的时候,最初进去是初始模式,无法添加内容,点击“i”可以转换到插入模式,然后可以编辑文档,进行插入删除。然后Esc退出插入模式,回到初始模式,如果已经完成了编辑," Ctrl + : " 然后进入命令行模式,如果因为操作不当,改错了,而且无法修改的情况,就在命令行模式输入 q! , 强制退出,不保存。 如果完美更改,就输入 wq 保存后退出。 想了解更多,可以网上找找教程,蛮多的。
1.备份原文件:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bk
2.修改ssh配置文件:
sudo vi /etc/ssh/sshd_config
3.编辑调整以下 ssh 相关的设置项,在打开的文件中找下边的每一项
Port 22 # 更换端口,原文章修改为8022,一般不会被占用的端口都可以
ListenAddress 0.0.0.0 # 去掉前面的'#'
UsePrivilegeSeparation no # 我没有在Ubuntu20中找到这一项,所以可以忽略
PermitRootLogin yes # 去掉前面的'#' 并修改为yes
#StrictModes yes # 在前面加上'#' 这个在Ubuntu20 中本身就是注释掉的,可以忽略
PasswordAuthentication yes
4.生成host key
sudo ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key
5.生成user key
ssh-keygen -t rsa
6.启动ssh服务
sudo /etc/init.d/ssh start
7.验证ssh服务状态
/etc/init.d/ssh status
成功状态:* sshd is running
重启windows后启动Linux SSH服务(CMD命令):
wsl -d ubuntu -u root /etc/init.d/ssh start
或者
wsl sudo /etc/init.d/ssh start (我用这个是成功开启的)
3. Linux必备安装的编译工具
这一模块,其实没什么好说的,根据个人的项目需要直接在WSL中命令行安装就行了,缺什么安装什么,gcc,cmake,clang,libXXX什么的,非常的方便,所以我们在安装完Clion之后,如果你不打算直接用Clion开发基于windows的项目,我觉着就没必要再在windows上安装gcc,cmake还有mingW,所有的编译环境都由WSL来提供,非常的方便。
另外,配置CLion工具链远程调试Ubuntu子系统程序可以参考引言的博文,第3章节,非常的详细。但是我建议,看到3.2就可以了,3.3没必要继续下去,环境变量和同步我都没有用到,因为我所有的项目完全clone在windows上,没有clone在wsl中,因为个人的原因,在push代码的时候,我会在虚拟机完成,主要需要在虚拟机进行一次匹配,windows直接push会产生一些小问题,尤其是换行问题。这个看个人的需求,目前来说,我机器上运行的项目还是稳定的。
4. 运行项目
这一块需要设置CLion中使用的Terminal为Ubuntu子系统Terminal。
通过设置Settings->Tools->Terminal中的Shell Path 为wsl.exe,如果你想切换回windows的Terminal,就改回powershell.exe就可以了。
然后我们就可以使用Linux的命令行直接进行编译,最直接的表现就是我们可以直接使用 ./configure.sh 进行配置,但是!最重要的一点来了,因为我们的源代码在windows下,不是Linux中,中间依然存在通过共享文件夹传递的过程,所以,我们需要在每次命令行之前加上sudo确保可以执行修改(比如,sudo ./configure.sh 或者 sudo make)。这可能是1903版本及之后windows的一个优势,它允许wsl通过sudo对windows文件进行操作修改,不再锁死777权限。
然后基本上剩下的问题就是一些编译工具的问题,库的缺失,但都可以通过命令行直接安装解决问题。
通过cmake我们可以发现,wsl将windows下的源代码,通过共享文件夹的形式(/mnt/d/workspace)进行编译,到此就已经可以进行正常的编译开发,调试修改的工作了。
如果出现别的问题,可
真是有点惨以再找找网上的资料,或者不行就虚拟机吧留言也可以,我也不一定回答的出来看到了就回复。祝一切顺利😀
版权声明:本文标题:使用Windows自带Linux子系统WSL为Clion配置运行环境及项目执行 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1729794324h1353703.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论