如何在VS2019环境下编译可调试的FFmpeg库?
Win10 可调试自定义FFmpeg库编译方案(稳定可用)
前置准备
- 安装MSYS2,安装完成后打开 MSYS2 MINGW64 终端,先执行全量包更新:
- 第一次执行
pacman -Syu,按提示重启终端 - 重启后再执行
pacman -Su完成剩余包更新
- 第一次执行
- 安装FFmpeg编译必需依赖:
执行命令pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb mingw-w64-x86_64-pkgconf make yasm nasm diffutils
若需要编译32位版本,将命令中所有x86_64替换为i686即可 - 下载FFmpeg对应版本源码,解压到无中文、无空格的本地路径,例如
D:\ffmpeg_source
编译配置(核心调试参数)
打开MSYS2 MINGW64终端,进入源码目录(MSYS2中磁盘路径写法为/d/ffmpeg_source对应Windows的D:\ffmpeg_source):
cd /d/ffmpeg_source
执行配置命令,可根据自身需求增删编解码、功能模块参数:
./configure \ --prefix=/d/ffmpeg_build \ --enable-debug=3 \ --disable-optimizations \ --disable-stripping \ --enable-shared \ --disable-static \ --arch=x86_64 \ --target-os=mingw64 \ --enable-gpl \ --enable-version3
关键调试参数说明:
--enable-debug=3:生成最高等级的调试信息,覆盖所有源码段--disable-optimizations:关闭所有编译优化,避免调试时变量被优化回收、断点位置跳变--disable-stripping:不剥离符号表,保留生成pdb调试文件的必要信息--prefix:后续编译完成后输出文件的存储路径,可自行修改
若需要编译可直接给MSVC(Visual Studio)链接的库,可在配置参数中追加--enable-msvc
编译安装
- 配置无报错后,执行多线程编译,
-j后参数为CPU核心数,根据自身设备配置调整,例如8核CPU写:make -j8 - 编译完成后执行安装命令,输出文件会自动存入之前指定的prefix路径:
make install
编译完成后输出目录中会包含对应dll、头文件、lib文件以及同名pdb调试文件。
调试使用注意
- 调试时需将FFmpeg源码路径添加到IDE的调试符号搜索路径中,同时保证pdb文件和对应dll放在同一目录
- 不要对生成的dll执行strip操作,会直接删除调试符号导致无法正常调试
内容的提问来源于stack exchange,提问作者Xia Qizhen
相关产品推荐
相关产品推荐

