OpenCV中文网站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 安装 配置
查看: 4911|回复: 15

请教高手,linux虚拟机下编译opencv出错

[复制链接]
发表于 2014-6-25 19:06:04 | 显示全部楼层 |阅读模式
我在linux虚拟机ubuntu10.04下编译opencv2.4.8出现以下问题:
../../lib/libopencv_highgui.so.2.4.8: undefined reference to `avformat_network_init'
../../lib/libopencv_highgui.so.2.4.8: undefined reference to `avformat_find_stream_info'
../../lib/libopencv_highgui.so.2.4.8: undefined reference to `av_guess_format'
../../lib/libopencv_highgui.so.2.4.8: undefined reference to `avio_close'
../../lib/libopencv_highgui.so.2.4.8: undefined reference to `avformat_new_stream'
../../lib/libopencv_highgui.so.2.4.8: undefined reference to `avformat_close_input'
../../lib/libopencv_highgui.so.2.4.8: undefined reference to `avformat_write_header'
../../lib/libopencv_highgui.so.2.4.8: undefined reference to `avcodec_open2'
../../lib/libopencv_highgui.so.2.4.8: undefined reference to `avcodec_decode_video2'
../../lib/libopencv_highgui.so.2.4.8: undefined reference to `avformat_free_context'
../../lib/libopencv_highgui.so.2.4.8: undefined reference to `avio_open'
../../lib/libopencv_highgui.so.2.4.8: undefined reference to `avformat_open_input'
../../lib/libopencv_highgui.so.2.4.8: undefined reference to `av_free_packet'
collect2: ld returned 1 exit status
make[2]: *** [bin/opencv_perf_core] Error 1
make[1]: *** [modules/core/CMakeFiles/opencv_perf_core.dir/all] Error 2
make: *** [all] Error 2


烦请高手指点一二,谢谢!
回复

使用道具 举报

 楼主| 发表于 2014-6-25 21:40:11 | 显示全部楼层
以上问题已解决,由于缺少ffmpeg相关的so库。
回复 支持 反对

使用道具 举报

发表于 2016-3-14 09:42:52 | 显示全部楼层
fuyang163 发表于 2014-6-25 21:40
以上问题已解决,由于缺少ffmpeg相关的so库。

能说说到底缺少哪个库吗,我看网上的一些说法是ffmpeg的版本不对导致的,我用0.6.7的ffmpeg出现和你一样的问题,请问您是怎么解决的
回复 支持 反对

使用道具 举报

发表于 2016-3-14 10:12:37 | 显示全部楼层
去下载新版本的ffmpeg试试,http://ffmpeg.org/

下完,解压,

./configure --enable-nonfree --enable-pic --enable-shared
回复 支持 反对

使用道具 举报

发表于 2016-3-14 10:13:31 | 显示全部楼层
# Install dependencies
sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils

这些也装上
回复 支持 反对

使用道具 举报

发表于 2016-3-14 10:14:11 | 显示全部楼层
ljl342301 发表于 2016-3-14 09:42
能说说到底缺少哪个库吗,我看网上的一些说法是ffmpeg的版本不对导致的,我用0.6.7的ffmpeg出现和你一样 ...

0.6 那版本好老了,换新的试试
回复 支持 反对

使用道具 举报

发表于 2016-3-14 16:05:05 | 显示全部楼层
yangzegang 发表于 2016-3-14 10:14
0.6 那版本好老了,换新的试试

换成新版的opencv能识别出来吗,我的opencv版本是2.4.9,我看网上很多人说2.0版本用的是ffmpeg0.7的版本,太高识别不出来,所以我想问问您当时是怎么解决的,或者说您当初用的哪个ffmpeg
回复 支持 反对

使用道具 举报

发表于 2016-3-17 15:32:58 | 显示全部楼层
ljl342301 发表于 2016-3-14 16:05
换成新版的opencv能识别出来吗,我的opencv版本是2.4.9,我看网上很多人说2.0版本用的是ffmpeg0.7的版本 ...

新版本可以的,向下兼容么,我现在可以的
回复 支持 反对

使用道具 举报

发表于 2016-3-19 17:07:05 | 显示全部楼层
yangzegang 发表于 2016-3-17 15:32
新版本可以的,向下兼容么,我现在可以的

我在Ubuntu64位系统下用1.2.12运行没问题,交叉编译arm下的opencv库时用交叉编译的1.2.12就会报错,显示libavcodec.so:file not recognised:file format not recognised。我想请问您用过的最高的ffmpeg版本是哪个呢,我要在opencv2.4.9下交叉编译处理视频
回复 支持 反对

使用道具 举报

发表于 2016-3-20 15:45:12 | 显示全部楼层
yangzegang 发表于 2016-3-17 15:32
新版本可以的,向下兼容么,我现在可以的

libavcodec.so:file not recognised:file format not recognised的问题我解决了,是我自己cmake的路径有问题,但是我用1.2.12的ffmpeg依旧是这个帖子说的问题,换成2.0.7也是这个问题,按照国外的一个帖子说法x264编译的时候已经加上了--enable-pic --enable-shared,ffmpeg的编译也加了--enable-pic --enable-shared,但是依旧不行,比较无语的是我编译Ubuntu用的x64没问题,交叉编译arm用的就报错,差别就是ibfaac ,libmp3lame, libtheora, libopencore-amrwb ,libopencore-amrnb, libvorbis,libtheora这几个我没加在交叉编译里,我看了那么多用于交叉编译的帖子也没看见往arm里移植还得加这几个依赖库,奇了怪了
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|blog|OpenCV中文网站 ( 粤ICP备13079875号-2

GMT+8, 2019-3-21 09:31 , Processed in 0.059220 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表