CLion使用WSL2时CMake报权限错误 无法写入配置文件
WSL2环境下CLion CMake权限报错解决方案
按以下顺序逐一排查操作,每步完成后可重新加载CLion的CMake项目验证是否修复:
- 修正目录归属与项目存放路径
你后续出现的Cannot save file \\wsl$\Ubuntu\home\CMakeFiles\clion-environment.txt报错,说明当前操作路径直接指向了WSL的/home根目录,该目录默认归属root用户,普通账户无写入权限。先在WSL终端执行以下操作:
优先把WSL下开发的项目存放在WSL原生的用户目录里,不要放在/mnt/下的Windows盘符,能避免90%的跨系统文件权限、ioctl报错。# 清理/home目录下误生成的CMake缓存文件 sudo rm -rf /home/CMakeFiles /home/cmake-build-debug # 替换<your_username>为你WSL内的实际用户名,创建专属项目目录 mkdir -p /home/<your_username>/workspace # 将你要打开的代码项目移动到该专属目录下,不要直接放在/home根目录或Windows挂载盘(/mnt/c/等路径)下 - 校验WSL自动挂载配置是否生效
你之前配置的metadata参数需要确认是否正确加载,在WSL终端执行:
如果输出的挂载参数里没有mount | grep drvfsmetadata字段,重新编辑/etc/wsl.conf,写入以下完整配置:
保存后在Windows的PowerShell/终端里执行[automount] enabled = true options = "metadata,umask=0022,fmask=0011" mountFsTab = falsewsl --shutdown,等待10秒后重新打开WSL,再执行上面的mount命令确认metadata参数已经加载。 - 清理旧缓存并修正CLion配置
- 进入你的项目根目录,执行
rm -rf cmake-build-* .idea清理旧的CMake构建缓存和CLion项目配置 - 打开CLion,进入「设置-构建、执行、部署-工具链」,选中你使用的WSL工具链,确认CMake、C编译器、C++编译器、GDB路径均自动识别为WSL内的路径(比如C编译器路径为
/usr/bin/gcc),不要手动指定Windows侧的程序路径 - 重新打开项目时,确认CLion识别到的项目根目录是你放在
/home/<your_username>/workspace下的项目路径,不要选择/home作为项目根
- 进入你的项目根目录,执行
- 修复用户目录权限
如果以上操作完成后仍有权限报错,在WSL终端执行以下命令修正整个用户目录的归属:sudo chown -R <your_username>:<your_username> /home/<your_username> sudo chmod -R 755 /home/<your_username>
注意:所有涉及WSL内文件的权限修改操作,都要在WSL终端内执行,不要直接在Windows资源管理器里通过
\\wsl$\网络路径修改文件属性,会破坏WSL的文件元数据,触发Inappropriate ioctl for device错误。
内容的提问来源于stack exchange,提问作者xyf
相关产品推荐
相关产品推荐

