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

Mingw64环境编译含FFmpeg的cgo程序时pkg-config报错

解决MinGW64下cgo编译FFmpeg程序时pkg-config找不到库的问题

我来帮你解决这个MinGW64环境下编译依赖FFmpeg的cgo程序时,pkg-config报错找不到库的问题。从你给出的编译执行信息能看到,go build过程中调用pkg-config去查找libavfilter、libavutil等FFmpeg组件,但没有成功匹配到:

$ go build -x src/github.com/imkira/go-libav/examples/transcoder.go
WORK=C:\msys64\tmp\go-build616922114
mkdir -p $WORK\b033\
cd c:\users\chris_000\code\go\src\github.com\imkira\go-libav\avfilter
pkg-config --cflags -- libavfilter libavutil
mkdir -p $WORK\b030\
cd c:\users\chris_000\code\go\src\github.com\imkira\go-libav\avcodec
pkg-config -...

下面是具体的排查和修复步骤:

  • 确认FFmpeg开发包已正确安装到MinGW64
    不要使用随便下载的预编译FFmpeg版本,最好通过MinGW64的包管理器(pacman)安装带开发文件的FFmpeg包。打开MinGW64终端,执行:

    # 64位系统执行这个
    pacman -S mingw-w64-x86_64-ffmpeg
    # 32位系统换成这个
    # pacman -S mingw-w64-i686-ffmpeg
    

    安装完成后,验证pkg-config能否识别到FFmpeg库:

    pkg-config --list-all | grep av
    

    如果能输出libavcodec、libavfilter、libavutil等条目,说明安装没问题。

  • 检查并配置PKG_CONFIG_PATH环境变量
    pkg-config是通过PKG_CONFIG_PATH环境变量查找库的配置文件(.pc文件)的。如果你的FFmpeg是手动编译安装的,需要把它的pkgconfig目录加到这个变量里:

    # 假设手动编译的FFmpeg安装在/usr/local/ffmpeg,替换成你的实际路径
    export PKG_CONFIG_PATH=/usr/local/ffmpeg/lib/pkgconfig:$PKG_CONFIG_PATH
    

    配置后再测试:

    pkg-config --cflags libavfilter libavutil
    

    如果能输出类似-I/mingw64/include这样的头文件路径,说明环境变量配置生效了。

  • 绕过pkg-config,手动指定cgo参数
    如果pkg-config始终无法正常工作,可以直接在Go代码中通过cgo指令手动指定FFmpeg的头文件和库路径。找到你的go-libav相关代码中的cgo注释部分,修改成类似这样:

    /*
    #cgo CFLAGS: -I/mingw64/include
    #cgo LDFLAGS: -L/mingw64/lib -lavfilter -lavutil -lavcodec -lavformat -lswscale -lswresample
    #include <libavfilter/avfilter.h>
    #include <libavutil/avutil.h>
    */
    import "C"
    

    注意把/mingw64/include和/mingw64/lib替换成你实际的FFmpeg头文件和库所在路径。

  • 确保使用正确的MinGW64终端环境
    一定要打开MSYS2提供的MinGW64 Shell(不是普通CMD、PowerShell或者MSYS2 Shell),这个终端会自动配置好MinGW64相关的环境变量。你可以执行echo $PATH检查,确保/mingw64/bin在路径列表中,这样pkg-config和编译器才能找到对应的工具和库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:18:04