首页
/ mpv-winbuild-cmake完全入门:从安装到编译的一站式教程

mpv-winbuild-cmake完全入门:从安装到编译的一站式教程

2026-02-04 05:21:11作者:贡沫苏Truman

mpv-winbuild-cmake 是一个基于 CMake 的 MinGW-w64 交叉编译工具链,主要用于构建 Windows 平台的 mpv 媒体播放器二进制文件。本教程将从环境准备到最终编译,为你提供完整的操作指南,帮助新手轻松掌握使用方法。

📋 必备条件与环境准备

支持的操作系统

  • 推荐环境:现代 Linux 发行版(编译速度快且兼容性好)
  • 兼容环境:Cygwin / MSYS2(编译速度较慢,需额外配置)
  • 注意:Windows 10/11 用户可通过 WSL2 运行 Linux 环境进行编译

核心依赖工具

  • 构建工具:Ninja(推荐,比 GNU Make 更快更可靠)
  • 版本控制:Git、Mercurial、Subversion
  • 编译工具链:GCC 或 Clang(GCC 更成熟,Clang 支持更多架构)

🔧 系统环境配置

Manjaro / Arch Linux

打开终端执行以下命令安装依赖:

sudo pacman -S git gyp mercurial subversion ninja cmake meson ragel yasm nasm asciidoc enca gperf unzip p7zip gcc-multilib clang lld libc++ libc++abi python-pip curl lib32-gcc-libs lib32-glib2 mimalloc ccache
pip3 install rst2pdf mako jsonschema
sudo pacman -S llvm  # 用于构建 LLVM PGO

Ubuntu Linux / WSL

sudo apt-get install build-essential checkinstall bison flex gettext git mercurial subversion ninja-build gyp cmake yasm nasm automake pkgconf libtool libtool-bin gcc-multilib g++-multilib clang lld libc++1 libc++abi1 libgmp-dev libmpfr-dev libmpc-dev libgcrypt-dev gperf ragel texinfo autopoint re2c asciidoc python3-pip docbook2x unzip p7zip-full curl mimalloc ccache
pip3 install rst2pdf meson mako jsonschema

WSL 特别配置
需要创建 /etc/wsl.confC:\Users\<UserName>\.wslconfig 文件限制资源使用,避免编译时卡死。

MSYS2 / Cygwin

  • MSYS2:需通过 MSYS2 MSYS 快捷方式启动,禁用 mingw32mingw64 仓库
  • Cygwin:部分依赖需手动安装,可参考 官方指南

🚀 快速开始:编译步骤

1. 获取源码

git clone https://gitcode.com/GitHub_Trending/mp/mpv-winbuild-cmake
cd mpv-winbuild-cmake

2. 配置 CMake(GCC 示例)

cmake -DTARGET_ARCH=x86_64-w64-mingw32 \
      -DGCC_ARCH=x86-64-v3 \
      -DSINGLE_SOURCE_LOCATION="/home/user/packages" \
      -DRUSTUP_LOCATION="/home/user/install_rustup" \
      -G Ninja -B build64 -S .
  • -DTARGET_ARCH:目标架构(x86_64-w64-mingw32i686-w64-mingw32
  • -DGCC_ARCH:CPU 架构优化(如 x86-64-v3native
  • -B build64:指定构建目录(64位为例)

3. 执行编译

cd build64
ninja download  # 提前下载所有依赖包(可选)
ninja gcc       # 构建 GCC 工具链(约20分钟)
ninja mpv       # 构建 mpv 及所有依赖

编译结果:最终文件位于 build64 目录,总大小约 3GB

4. 二次编译更新

ninja update  # 更新所有 Git 仓库
ninja mpv     # 增量编译 mpv

⚙️ 高级选项:Clang 编译

Clang 支持 x86_64i686aarch64 架构(aarch64 未测试),配置示例:

cmake -DTARGET_ARCH=x86_64-w64-mingw32 \
      -DCMAKE_INSTALL_PREFIX="/home/user/clang_root" \
      -DCOMPILER_TOOLCHAIN=clang \
      -DGCC_ARCH=x86-64-v3 \
      -G Ninja -B build_clang -S .
cd build_clang
ninja llvm       # 构建 LLVM(约2小时)
ninja rustup     # 构建 Rust 工具链
ninja llvm-clang # 构建 Clang 交叉编译器
ninja mpv        # 构建 mpv

📌 常用命令参考

命令 描述
ninja package 编译指定包(package 为 packages 目录下的包名)
ninja clean 清理所有构建缓存
ninja download 批量下载所有依赖源码
ninja update 更新所有 Git 仓库并触发增量构建
ninja package-fullclean 清理指定包的所有缓存

📦 包含的主要组件

mpv-winbuild-cmake 会自动构建以下核心组件(完整列表见 packages 目录):

  • 媒体处理:FFmpeg、x264、x265、dav1d、libvpx
  • 音频处理:Opus、FLAC、LAME、libsoxr
  • 图形渲染:libplacebo、vulkan、shaderc
  • 字幕与字体:libass、fontconfig、freetype2
  • 容器格式:libbluray、libdvdread、libarchive

💡 常见问题解决

  • WSL 编译卡死:配置 wsl.conf.wslconfig 限制内存使用(建议设为 4GB)
  • 依赖缺失:根据错误提示安装对应的开发包(通常以 -dev-devel 结尾)
  • 架构不兼容:确保 TARGET_ARCH 与系统架构匹配(32位/64位)

通过本教程,你已掌握使用 mpv-winbuild-cmake 构建 Windows 版 mpv 的完整流程。无论是新手还是有经验的开发者,都能通过这套工具链轻松定制自己的 mpv 播放器。

登录后查看全文
热门项目推荐
相关项目推荐