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

启用avfilter编译FFmpeg相关C++程序报未定义符号错误

报错原因

所有未定义的_pp_*前缀符号均属于FFmpeg配套的libpostproc(视频后处理)库导出接口。启用滤镜功能时,libavfilter中的vf_pp后处理滤镜模块会被链入,该模块强依赖libpostproc的实现;当前链接参数列表未包含这个库,因此触发x86_64架构下的符号未定义错误。不启用滤镜时不会链入vf_pp相关目标文件,因此编译可正常通过。

修复方法

在CMake的链接选项中补充-lpostproc链接项即可。静态库链接需遵守依赖顺序规则:依赖其他库的模块靠前放置,被依赖的库靠后放置,因此-lpostproc需要加在-lavfilter项之后。
修改后的配置参考:

set(FFMPEG_OPTIONS "-Wl,-no_compact_unwind -L/usr/local/lib" "-L/usr/lib" "-lbz2" "-liconv" "-lz" "-lavutil" "-lavcodec" "-lavdevice" "-lavformat" "-lavfilter" "-lpostproc" "-lswresample" "-lswscale" "-lx264" "-pthread" "-lm" "-framework AudioUnit" "-framework AudioToolbox" "-framework CoreAudio" "-framework VideoToolbox" "-framework CoreFoundation" "-framework CoreMedia" "-framework CoreVideo" "-framework CoreGraphics" "-framework CoreImage" "-framework CoreServices" "-framework Security" "-framework Foundation" "-framework AppKit")
target_link_libraries(main PUBLIC ${FFMPEG_OPTIONS})

若为自行编译安装的FFmpeg,需确认编译配置时开启了--enable-postproc选项,保证系统链接搜索路径下存在libpostproc静态库或动态库文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 01:45:45