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

4.6 KiB
Raw Permalink Blame History

Windows WSL指南

选择WSL版本

  • 如果你想将项目存放在Windows系统中优先选择WSL1。
  • 如果你想获得最佳性能并尽量减少 Windows 干扰项目编译的问题,请使用 WSL2 并将项目存放在 Linux 文件系统中(位于 ~/ 目录下)。

安装 WSL

  1. 以管理员模式打开 Windows Powershell 执行下面的命令 (鼠标右键或按下Shift+Insert以粘贴到Powershell)。

    • WSL1

      wsl --install -d Ubuntu --enable-wsl1
      
    • WSL2

      wsl --install -d Ubuntu
      
  2. 等待命令完成后重启你的电脑

WSL1

  1. 重启后以管理员模式打开Powershell 执行下面的命令将Ubuntu版本设置为WSL1。

    wsl --set-version Ubuntu 1
    

WSL2

  1. 重启后以管理员模式打开Powershell 执行下面的命令将Ubuntu版本设置为WSL2。

    wsl --set-version Ubuntu 2
    
    注意...

    重启后WSL可能会自动启动但这并不会影响什么。

查看WSL版本

  1. 以管理员模式打开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安装结束后需要设置用户名和密码

    Note...

    输入密码时WSL不会显示输入的内容但它仍在正常获取输入的字符。

  3. 通过下面的命令更新WSL这可能需要一段时间

    sudo apt update && sudo apt upgrade
    
  4. 执行下面的命令以安装编译pokeemerald-expansion的依赖项

    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系统用户名

cd /mnt/c/Users/<user>/Desktop/decomps
注意……

1: Windows C:\ 盘在WSL中对应/mnt/c/。 2: 如果路径中包含空格,则必须用"将整个路径包围起来,例如"/mnt/c/users/<user>/Desktop/decomp folder"。 3: Windows路径是大小写不敏感的所以无需注意大小写问题。

在WSL2中设置源码存放位置

Windows不能直接访问WSL的文件但WSL可以直接访问Windows文件。但在WSL2中访问Windows文件速度很慢因此最好将文件存放在WSL2中。 要从 Windows 访问 WSL中的文件你需要在文件资源管理器中将 WSL 文件系统作为网络附加存储打开它应该位于左侧边栏的底部显示为“Linux”。

在WSL中运行下面的命令以创建一个文件夹用于存放pokeemerald-expansion如果这个文件夹不存在

cd ~/
mkdir decomps

运行下面的命令进入存放pokeemerald-expansion的文件夹

cd ~/decomps

WSL更新或安装依赖时错误解决

更新WSL安装依赖项时如果出现以下错误提示

E: Sub-process /usr/bin/dpkg returned an error code (1)

可先执行以下命令

sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old
sudo mkdir /var/lib/dpkg/info

等待命令执行完毕后再次运行更新WSL安装依赖项命令。更新或安装完毕后运行以下命令以恢复pkg信息

sudo mv /var/lib/dpkg/info_old/* /var/lib/dpkg/info/
sudo rmdir /var/lib/dpkg/info_old

如果出现以下提示并列出可移除的包名以libllvm17t64为例

The following package was automatically installed and is no longer required:
	libllvm17t64

可执行以下命令解决该提示

sudo apt autoremove
sudo apt install libllvm17t64