WSL文件权限修复:wiliwili编译错误解决

WSL文件权限修复:wiliwili编译错误解决

【免费下载链接】wiliwili 专为手柄控制设计的第三方跨平台B站客户端,目前可以运行在PC全平台、PSVita、PS4 和 Nintendo Switch上 【免费下载链接】wiliwili 项目地址: https://gitcode.com/GitHub_Trending/wi/wiliwili

在WSL(Windows Subsystem for Linux)环境下编译wiliwili时,文件权限问题常常导致编译失败。本文将详细介绍如何诊断和修复这些权限问题,确保顺利构建专为手柄控制设计的第三方跨平台B站客户端wiliwili。

问题诊断:识别权限错误

编译wiliwili时常见的权限错误包括“Permission denied”或“无法创建文件”等提示。这些错误通常源于WSL文件系统挂载权限不足或文件所有者配置不当。例如,当尝试执行scripts/build_switch.sh脚本时,可能会因权限不足而失败。

典型错误场景

  • 执行编译脚本时提示无执行权限
  • 依赖库文件无法被读取
  • 生成的目标文件无法写入到指定目录

修复方案:文件权限调整

1. 检查文件系统挂载权限

WSL默认挂载Windows文件系统时可能会限制权限。通过以下命令检查挂载选项:

mount | grep /mnt/c

若看到drvfs文件系统挂载时带有metadata选项,则表示权限管理已启用。若无此选项,需修改WSL配置文件/etc/wsl.conf

[automount]
options = "metadata,umask=22,fmask=11"

修改后重启WSL使配置生效。

2. 递归修复项目目录权限

使用chmod命令修复项目文件的执行权限,特别是编译脚本和可执行文件:

chmod -R +x scripts/
chmod -R +x library/

同时,确保当前用户拥有项目目录的所有权:

sudo chown -R $USER:$USER GitHub_Trending/wi/wiliwili

3. 编译前权限验证

在执行编译前,通过以下命令验证关键脚本的权限:

ls -l scripts/build_switch.sh
ls -l wiliwili/source/main.cpp

正确的权限应显示为-rwxr-xr-x(可执行文件)或-rw-r--r--(源代码文件)。

编译流程:以Switch平台为例

修复权限后,即可按照官方文档的指引进行编译。以交叉编译Switch平台可执行文件为例:

使用Docker编译(推荐)

docker run --rm -v $(pwd):/data devkitpro/devkita64:20240202 \
  bash -c "/data/scripts/build_switch.sh"

本地编译

# 安装依赖
sudo dkp-pacman -S switch-glfw switch-libwebp switch-cmake switch-curl devkitA64

# 编译
cmake -B cmake-build-switch -DPLATFORM_SWITCH=ON
make -C cmake-build-switch wiliwili.nro -j$(nproc)

验证与测试

编译成功后,生成的Switch可执行文件wiliwili.nro位于cmake-build-switch目录下。将其复制到Switch的switch目录即可运行。

wiliwili运行截图

常见问题解决

持续权限问题

若权限问题反复出现,可尝试将项目目录移动到WSL的Linux文件系统中(如~/projects/),而非Windows挂载目录。WSL对Linux原生文件系统的权限管理更为完善。

依赖库权限错误

部分依赖库可能需要单独设置权限,例如library/mpv/目录:

chmod -R 755 library/mpv/

总结

通过正确配置WSL文件系统权限、递归修复项目文件权限,并验证关键文件的访问权限,可有效解决wiliwili在WSL环境下的编译错误。权限修复后,即可顺利编译运行在PC全平台、PSVita、PS4和Nintendo Switch上的wiliwili客户端。

wiliwili多平台支持

完整的编译指南可参考项目官方文档README.md,其中详细介绍了各平台的编译步骤和依赖安装方法。

【免费下载链接】wiliwili 专为手柄控制设计的第三方跨平台B站客户端,目前可以运行在PC全平台、PSVita、PS4 和 Nintendo Switch上 【免费下载链接】wiliwili 项目地址: https://gitcode.com/GitHub_Trending/wi/wiliwili

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值