2025-05-05 02:44:56 +08:00

152 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Windows WSL指南
## 选择WSL版本
- 如果你想将项目存放在Windows系统中优先选择WSL1。
- 如果你想获得最佳性能并尽量减少 Windows 干扰项目编译的问题,请使用 WSL2 并将项目存放在 Linux 文件系统中(位于 ~/ 目录下)。
## 安装 WSL
1. 以管理员模式打开 [Windows Powershell](https://i.imgur.com/QKmVbP9.png) 执行下面的命令 (鼠标右键或按下Shift+Insert以粘贴到Powershell)。
- WSL1
```powershell
wsl --install -d Ubuntu --enable-wsl1
```
- WSL2
```powershell
wsl --install -d Ubuntu
```
2. 等待命令完成后重启你的电脑
### WSL1
3. 重启后以管理员模式打开Powershell 执行下面的命令将Ubuntu版本设置为WSL1。
```powershell
wsl --set-version Ubuntu 1
```
### WSL2
3. 重启后以管理员模式打开Powershell 执行下面的命令将Ubuntu版本设置为WSL2。
```powershell
wsl --set-version Ubuntu 2
```
<details>
<summary><i>注意...</i></summary>
> 重启后WSL可能会自动启动但这并不会影响什么。
</details>
### 查看WSL版本
4. 以管理员模式打开Powershell执行下面的命令
```powershell
wsl --list -v
```
## 安装依赖项
注意事项:
- WSL中复制/粘贴方法
- **鼠标右键** (选中后右键单击复制,未选中内容时右键单击粘贴)
- **Ctrl+Shift+C/Ctrl+Shift+V** (右键单击标题栏,确认已勾选"使用Ctrl+Shift+C/V作为复制/粘贴快捷键")。
- 执行部分命令时需要输入WSL用户密码或手动确认。在需要确认时根据提示输入WSL用户密码或yes/y即可
1. 启动**Ubuntu** 比如在搜索中启动)。
2. 第一次启动WSL/Ubuntu时将会自动完成安装。等待WSL/Ubuntu安装结束后需要设置用户名和密码
<details>
<summary><i>Note...</i></summary>
> 输入密码时WSL不会显示输入的内容但它仍在正常获取输入的字符。
</details>
3. 通过下面的命令更新WSL这可能需要一段时间
```bash
sudo apt update && sudo apt upgrade
```
4. 执行下面的命令以安装编译pokeemerald-expansion的依赖项
```bash
sudo apt install build-essential binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi git libpng-dev python3
```
## 在WSL1中设置源码存放位置
Windows不能直接访问WSL的文件但WSL可以直接访问Windows文件。因此可以将文件存放在Windows系统中。
假设你想将pokeemerald Expansion存放在**C:\Users\\_\<user>_\Desktop\decomps**目录。首先确认这个文件夹存在。然后输入下面的命令进入该文件夹(**\<user>**指Windows系统用户名
```bash
cd /mnt/c/Users/<user>/Desktop/decomps
```
<details>
<summary><i>注意……</i></summary>
> 1: Windows C:\ 盘在WSL中对应/mnt/c/。
> 2: 如果路径中包含空格,则必须用"将整个路径包围起来,例如`"/mnt/c/users/<user>/Desktop/decomp folder"`。
> 3: Windows路径是大小写不敏感的所以无需注意大小写问题。
</details>
## 在WSL2中设置源码存放位置
Windows不能直接访问WSL的文件但WSL可以直接访问Windows文件。但在WSL2中访问Windows文件速度很慢因此最好将文件存放在WSL2中。
要从 Windows 访问 WSL中的文件你需要在文件资源管理器中将 WSL 文件系统作为网络附加存储打开它应该位于左侧边栏的底部显示为“Linux”。
在WSL中运行下面的命令以创建一个文件夹用于存放pokeemerald-expansion如果这个文件夹不存在
```bash
cd ~/
mkdir decomps
```
运行下面的命令进入存放pokeemerald-expansion的文件夹
```bash
cd ~/decomps
```
## WSL更新或安装依赖时错误解决
<b>更新WSL</b>或<b>安装依赖项</b>时如果出现以下错误提示
```console
E: Sub-process /usr/bin/dpkg returned an error code (1)
```
可先执行以下命令
```bash
sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old
sudo mkdir /var/lib/dpkg/info
```
<b>等待命令执行完毕</b>后再次运行<b>更新WSL</b>或<b>安装依赖项</b>命令。<b>更新或安装完毕后</b>运行以下命令以恢复pkg信息
```bash
sudo mv /var/lib/dpkg/info_old/* /var/lib/dpkg/info/
sudo rmdir /var/lib/dpkg/info_old
```
如果出现以下提示并列出可移除的包名以libllvm17t64为例
```console
The following package was automatically installed and is no longer required:
libllvm17t64
```
可执行以下命令解决该提示
```bash
sudo apt autoremove
sudo apt install libllvm17t64
```