Gentoo用户指南:从源码编译wiliwili
B站作为国内最大的视频内容平台之一,拥有海量的动漫、影视和原创内容。对于Gentoo用户而言,通过源码编译安装应用不仅能获得更好的系统兼容性,还能根据硬件特性优化性能。本文将详细介绍如何在Gentoo系统上从源码编译专为手柄控制设计的跨平台B站客户端——wiliwili,让你在PC、PSVita、PS4或Nintendo Switch等设备上获得流畅的B站体验。
准备工作:系统环境与依赖安装
在开始编译前,需确保系统已安装基础开发工具链和必要依赖库。wiliwili依赖于MPV媒体播放器、WebP图像解码库等组件,这些在Gentoo中可通过Portage包管理器便捷安装。
核心依赖安装
执行以下命令安装编译所需的基础依赖:
sudo emerge --ask dev-vcs/git dev-util/cmake dev-lang/c++ libsdl2 media-video/mpv media-libs/libwebp net-misc/curl
注意:MPV需要启用网络支持以播放在线视频,确保
netUSE flag已在/etc/portage/package.use中启用:media-video/mpv net
获取源码
通过Git克隆项目仓库(包含子模块):
git clone --recursive https://gitcode.com/GitHub_Trending/wi/wiliwili.git
cd wiliwili
项目结构中包含多个平台的编译脚本和配置文件,核心代码位于wiliwili/source/目录,其中wiliwili/source/main.cpp是程序入口点。
编译配置:CMake参数与平台选项
wiliwili使用CMake作为构建系统,支持多平台编译。对于Gentoo桌面用户,需重点关注PLATFORM_DESKTOP选项;若需为Switch等游戏设备编译,可参考项目提供的专用脚本。
基础编译配置
创建构建目录并生成Makefile:
mkdir -p build && cd build
cmake .. -DPLATFORM_DESKTOP=ON -DCMAKE_BUILD_TYPE=Release
关键CMake参数说明:
-DPLATFORM_DESKTOP=ON:启用桌面平台编译(默认支持Linux、macOS、Windows)-DCMAKE_BUILD_TYPE=Release:生成优化的发布版本-DUSE_SDL2=ON:可选,使用SDL2替代GLFW处理输入(适用于部分嵌入式设备)-DINSTALL=ON:启用系统安装路径支持(需配合CMAKE_INSTALL_PREFIX)
高级选项:硬件加速与性能优化
对于支持硬件解码的设备(如AMD/Intel显卡),可添加如下参数启用VA-API加速:
cmake .. -DPLATFORM_DESKTOP=ON -DUSE_VAAPI=ON
项目中cmake/extra.cmake文件定义了额外编译选项,可根据需求调整。例如,启用Unity Build减少编译时间:
cmake .. -DBRLS_UNITY_BUILD=ON -DCMAKE_UNITY_BUILD_BATCH_SIZE=16
编译与安装:构建过程与故障排除
执行编译
使用make命令开始编译,建议指定线程数加速构建:
make -j$(nproc)
编译产物将生成在build/wiliwili路径下。若需安装到系统目录(如/usr/local/bin):
sudo make install
常见问题解决
-
MPV依赖错误
若提示libmpv.so缺失,需手动安装项目提供的定制MPV库:BASE_URL="https://github.com/xfangfang/wiliwili/releases/download/v0.1.0" wget ${BASE_URL}/switch-libmpv-0.36.0-3-any.pkg.tar.zst sudo emerge --ask --noreplace ./switch-libmpv-0.36.0-3-any.pkg.tar.zst -
编译速度慢
启用ccache缓存编译结果:cmake .. -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -
链接错误:undefined reference to `nv'*
确保nanovg图形库已正确初始化,检查wiliwili/source/view/目录下的渲染相关代码(如wiliwili/source/view/mpv_core.cpp)。
运行与调试:启动参数与日志查看
基本启动
直接运行编译后的可执行文件:
./build/wiliwili
首次启动时,程序会在~/.config/wiliwili目录生成配置文件。若需启用调试日志,添加--debug参数:
./build/wiliwili --debug > wiliwili.log 2>&1
手柄支持测试
wiliwili专为手柄优化,可通过以下命令测试按键映射:
./build/wiliwili --test-input
项目中scripts/linux/gen_icons.sh脚本可生成桌面图标,便于集成到应用菜单:
sudo ./scripts/linux/gen_icons.sh /usr/local/share/icons
跨平台编译:以Nintendo Switch为例
对于拥有Switch的用户,项目提供了Docker化编译流程。以下是简要步骤(需安装Docker):
# 使用官方编译脚本
./scripts/build_switch.sh
脚本会自动下载Switch平台依赖(如switch-ffmpeg),并生成NRO格式可执行文件。编译产物位于cmake-build-switch/wiliwili.nro,可通过大气层加载器运行。
更多平台编译细节可参考scripts/README.md和wiliwili/include/activity/目录下的平台特定代码。
总结与后续优化
通过源码编译wiliwili,Gentoo用户可获得针对硬件优化的B站客户端,尤其适合游戏掌机和HTPC设备。建议定期同步源码更新,或通过项目提供的CI nightly构建获取最新功能:
# 同步最新代码
git pull --recurse-submodules
推荐优化方向:
- 为低性能设备(如树莓派)编译时启用
-Os优化 - 调整wiliwili/include/utils/config_helper.hpp中的缓存策略
- 自定义主题与布局,参考wiliwili_theme项目
附录:项目资源与社区支持
关键文件与目录
- 官方文档:README.md
- 编译脚本:scripts/
- 图标资源:scripts/linux/icons/
- 屏幕截图:

问题反馈
若遇到编译错误,可优先检查:
- Issues是否有类似报告
- 网络诊断日志:应用内
设置 > 实用工具 > 网络诊断 - 依赖版本兼容性:参考scripts/build_switch_deko3d.sh中的依赖版本
通过以上步骤,你已成功在Gentoo系统上从源码构建wiliwili。享受手柄操控带来的沉浸式B站体验吧!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



