You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows/MSYS2环境下编译带libfreetype的FFmpeg失败求助

在MSYS2环境编译带libfreetype的静态FFmpeg时遇到freetype2检测失败问题

问题场景

在Windows的MSYS2环境中,执行以下configure命令编译静态FFmpeg时,始终提示freetype2未找到:

./configure     --pkg-config-flags="--static" --enable-libvpl  --enable-libopenh264     --enable-version3  --enable-libfreetype    --enable-libopus     --enable-libvpx     --enable-libvorbis     --enable-libaom     --enable-libdav1d     --disable-gpl     --disable-w32threads     --enable-pthreads     --disable-shared     --enable-static     --extra-cflags='--static'   --extra-cflags="-I/mingw64/include -static"   --extra-ldflags="-L/mingw64/lib -static" --prefix="/home/compiled"

错误信息

ERROR: freetype2 not found using pkg-config

If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.libera.chat.
Include the log file "ffbuild/config.log" produced by configure as this will help
solve the problem.

已执行操作

  • 通过pacman安装freetype:
    pacman -Ss mingw-w64-x86_64-freetype
    
  • 从源码编译安装静态freetype2:
    git clone https://git.savannah.gnu.org/git/freetype/freetype2.git
    cd freetype2
    mkdir build && cd build
    /mingw64/bin/cmake .. -G "MSYS Makefiles" -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=/mingw64
    make
    make install
    
  • 验证pkg-config能识别freetype2:
    pkg-config freetype2 --cflags --libs
    
    输出:
    -IC:/msys64/mingw64/include/freetype2 -IC:/msys64/mingw64/include/harfbuzz -IC:/msys64/mingw64/include/glib-2.0 -IC:/msys64/mingw64/lib/glib-2.0/include -IC:/msys64/mingw64/include/libpng16 -lfreetype
    
  • 确认freetype2的pc文件存在:
    ls /mingw64/lib/pkgconfig/freetype2.pc
    
    输出:
    /mingw64/lib/pkgconfig/freetype2.pc
    

解决建议

  1. 调整pkg-config静态参数
    去掉--pkg-config-flags="--static",仅用--enable-static --disable-shared控制FFmpeg的静态编译逻辑。因为--static会强制pkg-config返回所有依赖的静态库,若其中某个依赖缺失静态版就会导致检测失败。

  2. 指定pkg-config路径
    手动设置PKG_CONFIG_PATH确保指向mingw64的pkgconfig目录:

    export PKG_CONFIG_PATH=/mingw64/lib/pkgconfig
    

    设置后重新运行configure命令。

  3. 完善freetype2.pc的静态库配置
    打开/mingw64/lib/pkgconfig/freetype2.pc,检查是否存在Libs.static字段。如果没有,添加以下内容(根据实际依赖调整):

    Libs.static: -lfreetype -lz -lbz2 -lpng16 -lharfbuzz -lglib-2.0 -lintl -pthread
    

    保存后运行pkg-config --static freetype2 --libs验证输出是否包含所有静态库。

  4. 合并重复的编译参数
    你重复设置了--extra-cflags参数,后面的会覆盖前面的,合并为单个参数:

    --extra-cflags="-I/mingw64/include -static"
    
  5. 安装完整的静态依赖包
    改用pacman安装MSYS2官方提供的静态依赖包,比源码编译更适配环境:

    pacman -S mingw-w64-x86_64-freetype-static mingw-w64-x86_64-harfbuzz-static mingw-w64-x86_64-glib2-static mingw-w64-x86_64-libpng-static
    

内容的提问来源于stack exchange,提问作者Devin Dixon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 08:55:38