构建OpenCV 2.4.x时出错“;对av_opt的未定义引用_set@LIBAVUTIL_51&引用;

构建OpenCV 2.4.x时出错“;对av_opt的未定义引用_set@LIBAVUTIL_51&引用;,opencv,build,undefined,Opencv,Build,Undefined,我曾尝试构建2.4的所有版本,但在“链接CXX可执行文件.././bin/opencv_test_core”时,它们都失败了: 我的CMakeLists.txt文件是默认文件,只是我将其更改为使用TBB,禁用了文档,并启用了详细模式 执行ldd/usr/local/lib/libavcodec.so.54我得到: root@omap4-multi:~/opencv/2.4.3/build# ldd /usr/local/lib/libavcodec.so.54 libavutil.so.

我曾尝试构建2.4的所有版本,但在“链接CXX可执行文件.././bin/opencv_test_core”时,它们都失败了:

我的CMakeLists.txt文件是默认文件,只是我将其更改为使用TBB,禁用了文档,并启用了详细模式

执行ldd/usr/local/lib/libavcodec.so.54我得到:

root@omap4-multi:~/opencv/2.4.3/build# ldd /usr/local/lib/libavcodec.so.54
    libavutil.so.51 => /usr/local/lib/libavutil.so.51 (0xb6132000)
    libx264.so.123 => /usr/local/lib/libx264.so.123 (0xb5fc4000)
    libvorbisenc.so.2 => /usr/local/lib/libvorbisenc.so.2 (0xb5e4a000)
    libvorbis.so.0 => /usr/local/lib/libvorbis.so.0 (0xb5e14000)
    libtheoraenc.so.1 => /usr/local/lib/libtheoraenc.so.1 (0xb5dcc000)
    libtheoradec.so.1 => /usr/local/lib/libtheoradec.so.1 (0xb5dac000)
    libopencore-amrwb.so.0 => /usr/local/lib/libopencore-amrwb.so.0 (0xb5d93000)
    libopencore-amrnb.so.0 => /usr/local/lib/libopencore-amrnb.so.0 (0xb5d67000)
    libmp3lame.so.0 => /usr/local/lib/libmp3lame.so.0 (0xb5cdd000)
    libfaac.so.0 => /usr/local/lib/libfaac.so.0 (0xb5cc1000)
    libm.so.6 => /lib/libm.so.6 (0xb5c44000)
    libz.so.1 => /usr/lib/libz.so.1 (0xb5c29000)
    libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 (0xb5c02000)
    libpthread.so.0 => /lib/libpthread.so.0 (0xb5be3000)
    libc.so.6 => /lib/libc.so.6 (0xb5ab8000)
    libogg.so.0 => /usr/local/lib/libogg.so.0 (0xb5aac000)
    /lib/ld-linux.so.3 (0x42228000)

有人知道是什么原因造成的,或者我能做些什么来修复它吗?我做这件事已经有一段时间了,我不知所措。任何帮助都将不胜感激。

我也遇到过类似的问题,但如果您升级了ffmpeg的一个或多个依赖项,这是ffmpeg的问题。Ffmpeg需要重新编译或更新其所有依赖项

我也有这个问题。即使在我重新编译ffmpeg之后,问题仍然存在。最后,我意识到从源代码安装的ffmpeg与由
apt-get
安装的lib之间存在冲突,我的意思是
libavutil-dev
libavutil-extra-51
。使用apt get remove ffmpeg简单地删除ffmpeg并不能解决此问题。我的解决方案是删除从
apt
安装的冲突库,如下所示:

sudo apt-get remove libavutil-dev libavutil-extra-51 

希望它对您有用。

您可以尝试在CMake中关闭
WITH_FFMPEG
选项并以这种方式构建它,除非您所做的任何事情都需要FFMPEG支持。我能够解决FFMPEG从0.11降级到0.8的问题。不知道为什么会出现问题,但已经解决了。
sudo apt-get remove libavutil-dev libavutil-extra-51