Win10下CLion+WSL环境配置,及如何运行移动储存上的C项目
简介
最近想了解C/C++,首先需要搭建环境并挑选一个合适的IDE,因为只是想练练手就不打算安装Visual Studio,最终选择CLion,此教程也同样适用于VS Code,编译用的是WSL,所谓的Windows下linux子系统,所以这篇介绍只适用WIn10系统(也需要18版本以上);
安装WSL
1、在搜索中搜索“控制面板”并打开,选择“程序”,在“程序和功能”下选择“启用或关闭Windows功能”,勾选“适用于Linux的Windows子系统”选项后点击“确定”,点击确定后会安装这个模块并要求重启计算机,接下来重启计算机。
2、
- 重启电脑后,打开“Microsoft Store“
- 点击”搜索“
- 输入”linux“后回车进行搜索
- 我使用的是“Ubuntu 18.04LTS”,点开后进行安装
- 安装完成后,在开始菜单中打开“Ubuntu 18.04LTS”,首次运行需要输入配置信息,输入自定义的用户名和密码。
- 如果WSL密码忘记了怎么办?
可以对WSL进行重置,也就是初始化,此方法也适用于WSL安装包错误导致系统崩溃,相当方便,可以肆无忌惮的探索Ubuntu。- 打开Win10中的“所有设置”
- 点击“应用”
- 在“应用和功能”中找到并单击“Ubuntu 18.04LTS”,选择“高级选项”
- 点击“重置”
- 打开Win10中的“所有设置”
配置WSL
这里我参考的是官方配置文档,链接是 https://www.jetbrains.com/help/clion/how-to-use-wsl-development-environment-in-clion.html,也详细描述一下。
- 鼠标右键点击“开始”后点击“Windows PowerShell(管理员)(A)”,在PowerShell中运行
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
,重启计算机。 - 重启后在开始菜单中打开“Ubuntu 18.04LTS”,运行
sudo apt-get install cmake gcc clang gdb build-essential
- 安装完后,执行
wget https://raw.githubusercontent.com/JetBrains/clion-wsl/master/ubuntu_setup_env.sh && bash ubuntu_setup_env.sh
- 安装完成后,执行
ssh [email protected] -p2222
,来查验安装结果
安装CLion
这里就不过多介绍,网上的安装例子很多,具体讲解配置问题。
-
打开CLion,找到Configure中的Settings.
-
选择”Build,Execution,Deployment“中的”Toolchains“,点击左侧”+“,选择"WSL",添加后会出现右侧选项,其他设置都是默认,只需要配置”Credentials“,点击后面的设置(齿轮)
-
将”Port“改为”2222“,在”User name“和”Password“中填入自己WSL中的用户名和密码,点击"OK"
-
这时候会发现原先页面中的默认配置都为可行状态。
-
在左侧目录中选择”Build,Execution,Deployment“中的”CMake“,选择”+“,后添加配置信息如图
-
点击”OK“,此时CLion配置已全部完成,可以新建项目了。
-
创建完项目后,进行调试,有的时候会出现这种情况,这里点击"Add Configuration",点击”+“,选择”CMake Applications“,重新命名,选择”Target“中的选项,将”Working directoy“,点击文件夹图标,添加项目文件目录。点击OK.
问题
因为WSL的使用是基于Win10中的linux子系统,liunx文件目录是区分大小写字母的,windows是不区分的,这里涉及到一个CLion设置问题,一般把项目建在C盘的(linux的挂在目录没有这种问题),因为我计算机中只有一块硬盘,我的项目放置在了一个U盘中,这时候使用Clion打开就会出现一些问题,比如目录找不到,文件夹不区分大小写。
针对外置储存目录找不到问题
因为WSL只是被安装在电脑硬盘中,当第二个储存添加到电脑系统上时都需要挂载,WSL不是自动挂在,需要手动配置。
- 首先打开”Ubuntu 18.04LTS“,假设你的移动硬盘在windows下显示为 D:\
- 运行
sudo mkdir /mnt/d
,在mnt下创建一个空的文件夹 - 运行
sudo mount -t drvfs D: /mnt/d
将D盘挂载到系统上,这里就完成了,可以通过cd /mnt/d
来访问外置硬盘了 - 运行
sudo umount /mnt/d
,卸载外置硬盘,这样才能在windows下正常弹出,否则是会一直占用的。
CLion中报目录不区分大小写问题
这里引用https://www.sysgeek.cn/windows-10-enable-folders-case-sensitive/,
Linux系统中文件目录是区分大小写的而windows中是不区分的。为了克服这一限制,微软从 Windows 10 Version 1803 更新开始,为 NTFS 文件系统新增了一个 SetCaseSensitiveInfo 标志。您可以有选择的为所需文件夹启用此 flag,之后 NTFS 文件系统就会针对该文件夹将其子文件视为区分大小写。一旦为文件夹打上 SetCaseSensitiveInfo flag,不仅可以在使用 Linux Console 时处理区分大小写的文件,更重要的是,它还允许其它 Windows 应用程序(如 Microsoft Word 或 Notepad 等)也能正常打开不同大小写文件名的电子文档。
- 在开始菜单中搜索 cmd——在「命令提示符」上右击选择「以管理员身份运行」——打开「管理员:命令提示符」工具
- 运行
fsutil file SetCaseSensitiveInfo d:\new enable
,d盘下的new文件夹目录下就会区分大小写命名
(运行fsutil file SetCaseSensitiveInfo d:\new disable
是解除大小写区分,运行fsutil file queryCaseSensitiveInfo <path>
是查看文件夹是否区分大小写命名) - 打开C:\Program Files\JetBrains\CLion 2019.3.5\bin路径,打开idea.properties文件,添加
idea.case.sensitive.fs=true
保存退出,重启CLion。
linux下直接执行
这种方法就间接讲了VS Code 怎么配置问题,以上的都设置完之后。可以直接使用Ubuntu访问文件目录,编译之前必须要有CMakeLists,网上很多。后编写main.c,依次执行cmake .
、make
就会生成执行文件,之后运行./main
,VS Code中是远程连接终端的方法,ctrl+j在终端中执行这些命令就可以。