天天看点

【填坑】使用 WSL、WSL2 编译代码可能遇到问题汇总

文档换行符的问题

官方推荐的解决方法:resolving-git-line-ending-issues-in-containers-resulting-in-many-modified-files

git 多平台统一换行符问题详解:https://juejin.im/post/6844903591258357773

如果不想重新克隆仓库,只想防止

git status

时候显示大量文件更改(由于

LF

被自动检出为

CRLF

),可以临时使用

git config --local core.autocrlf true

之后 git 不会再报

LF

CRLF

的改动,但是需要注意,虽然不显示

CRLF

的改动,但是文件确实被改了,可能导致

.sh

由于换行符改变无法在

WSL

中执行,需要使用编辑器改过来,方法请百度。

文件权限问题

linux

平台提交的代码,克隆到

Windows

平台,应为文件系统的不同,可能导致文件的执行权限丢失,因此可能导致

git status

时,检查到大量的文件变动,但是通过 git diff 却看不到内容变化,并且文件权限的改动在

git checkout .

时是无法复位的。

可以使用以下指令,忽略对文件执行权限的检查

git config --global core.filemode false
           

具体的解决方法,请查看 Windows 克隆远程仓库文件权限被修改的问题。

外部仓库 git 检索缓慢问题

使用 WSL 访问 Windows 系统的 git 仓库,对于某些体量大的项目,一次

git status

可能要耗时数分钟才能出结果。这明显还是两个系统之间文件通道的速度问题。

解决方法:

  1. 首先将 WSL 版本升级到

    WSL2

    方法可以参考 Set your distribution version to WSL 1 or WSL 2
  2. 如果速度还是较慢,请把该仓库转移到 WSL 的文件系统

    在文件管理器的输入

    \\wsl$

    可以直接进入,之后进行复制粘贴即可
【填坑】使用 WSL、WSL2 编译代码可能遇到问题汇总

WSL2 串口问题

WSL2 目前(2020-09-17)不支持串口或者 USB 访问,如果想通过串口下载程序,可使用下面的方法。

微软官方回复:在WSL 2的初始版本中,硬件访问支持将受到限制,例如:您将无法访问GPU,串行或USB。增加设备支持的工作具有高优先级。在此期间,您始终可以使用具有串行端口和USB访问权限的WSL 1。

https://github.com/microsoft/WSL/issues/4322#issuecomment-674928931

继续阅读