要解决Keil在Windows中无法写入WSL2文件系统的问题,可以按照以下步骤操作:
原因分析:
Keil运行在Windows环境,而项目路径位于WSL2的Linux文件系统(\wsl$...)。Windows应用直接访问WSL2文件系统时存在权限和兼容性问题,导致无法创建/写入文件。
解决方案:
方法1:将项目复制到Windows文件系统(推荐)
定位WSL项目路径
在WSL终端输入:
echo $(wslpath -w "$(pwd)")
复制输出的Windows格式路径(类似 \wsl$Debianhome...)。
通过Windows资源管理器访问
在Windows中按 Win+R → 输入 \wsl$Debian(替换为你的发行版名)→ 找到项目文件夹。
复制到Windows磁盘
将整个项目文件夹复制到NTFS分区(如 D:rt-thread-projects)。
在Keil中打开新位置的项目
使用复制后的路径(如 D:rt-thread-projects...project.uvprojx)编译即可解决写入问题。
方法2:修改Keil输出路径(临时解决)
- 在Keil中打开项目
- 进入
Options for Target → Output

- 将
Output 和 Objects 路径改为Windows本地路径(如 C:Keil_OBJ)
- 在
Listing 选项卡中同样修改输出路径
方法3:配置WSL文件权限
在WSL中运行:
# 递归添加写权限(需在项目目录上级操作)
sudo chmod -R u+w /home/yourname/workspace
# 关闭WSL严格权限(不推荐)
sudo nano /etc/wsl.conf
添加以下内容:
[automount]
options = "metadata,umask=022"
重启WSL:在PowerShell运行 wsl --shutdown
方法4:检查防病毒软件
临时禁用Windows Defender或第三方杀毒软件,排除权限拦截。
根本解决建议:
优先使用方法1(项目放在Windows分区)。WSL2的Linux文件系统(ext4)通过9P协议挂载到Windows,性能差且权限兼容性不佳。开发流程优化建议:
- 代码编辑/版本管理在WSL中操作
- 编译时通过复制到Windows分区使用Keil
- 调试完成后将生成文件同步回WSL(若有需要)
⚠️ 注意:直接修改WSL文件权限可能导致系统不稳定,方法3仅作临时尝试。
要解决Keil在Windows中无法写入WSL2文件系统的问题,可以按照以下步骤操作:
原因分析:
Keil运行在Windows环境,而项目路径位于WSL2的Linux文件系统(\wsl$...)。Windows应用直接访问WSL2文件系统时存在权限和兼容性问题,导致无法创建/写入文件。
解决方案:
方法1:将项目复制到Windows文件系统(推荐)
定位WSL项目路径
在WSL终端输入:
echo $(wslpath -w "$(pwd)")
复制输出的Windows格式路径(类似 \wsl$Debianhome...)。
通过Windows资源管理器访问
在Windows中按 Win+R → 输入 \wsl$Debian(替换为你的发行版名)→ 找到项目文件夹。
复制到Windows磁盘
将整个项目文件夹复制到NTFS分区(如 D:rt-thread-projects)。
在Keil中打开新位置的项目
使用复制后的路径(如 D:rt-thread-projects...project.uvprojx)编译即可解决写入问题。
方法2:修改Keil输出路径(临时解决)
- 在Keil中打开项目
- 进入
Options for Target → Output

- 将
Output 和 Objects 路径改为Windows本地路径(如 C:Keil_OBJ)
- 在
Listing 选项卡中同样修改输出路径
方法3:配置WSL文件权限
在WSL中运行:
# 递归添加写权限(需在项目目录上级操作)
sudo chmod -R u+w /home/yourname/workspace
# 关闭WSL严格权限(不推荐)
sudo nano /etc/wsl.conf
添加以下内容:
[automount]
options = "metadata,umask=022"
重启WSL:在PowerShell运行 wsl --shutdown
方法4:检查防病毒软件
临时禁用Windows Defender或第三方杀毒软件,排除权限拦截。
根本解决建议:
优先使用方法1(项目放在Windows分区)。WSL2的Linux文件系统(ext4)通过9P协议挂载到Windows,性能差且权限兼容性不佳。开发流程优化建议:
- 代码编辑/版本管理在WSL中操作
- 编译时通过复制到Windows分区使用Keil
- 调试完成后将生成文件同步回WSL(若有需要)
⚠️ 注意:直接修改WSL文件权限可能导致系统不稳定,方法3仅作临时尝试。
举报