代码改变世界

Fedora 18 下编译安装 OpenCV

2013-02-15 02:47  robturtle  阅读(1072)  评论(0编辑  收藏  举报

经过这次独立编译完成了OpenCV下的安装,标志着我已经脱离了Linux菜鸟阶段,已经向新手阶段迈进拉!

从听说Linux到现在正好整一年,作为一个有追求的又喜欢装逼的linuxer,这个时候最应该做的就是把ubuntu换掉。一开始的备选是装debian,不过我很快就改变主意选择了fedora,一是因为名字好听,二是因为自带gnome3.6。

fedora下没有OpenCV二进制包,于是我只能手动编译。

OpenCV的依赖有:

pkg-config libpng zlib libjpeg libtiff libjasper

另外一个重要的依赖是 ffmpeg,为了这个东西我整了好久。。。

如果需要GUI则要预先安装GTK+2.x或者GT 4.x , 在yum下无脑安装即可。不过我的gtk是编译安装的,安装时碰到有 XInput2 找不到的问题,google了好几分钟才找到需要的包装上。

编译的顺序是先OpenCV再ffmpeg,我选择gtk+的GUI,所以gtk我已经先安装好了。

接着在编译OpenCV的时候把 opencv_world 的编译选项打开,make之。

然后编译ffmpeg,使用

./configure --enbale-shared --enable-libopencv && sudo make install

这个时候出现问题了,configure提示找不到opencv,原来OpenCV默认安装在/usr/local下,pkg-config好像找不到那里去,我在.bashrc下添加了

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

之后,ffmpeg便配置成功了。

然后我编译运行OpenCV的程序,每个都失败,提示是:

Illegal instruction (core dump)

和指令有关应该是和解码库有关,我直接运行ffmpeg,提示为 libav***.so.* 找不到,而它说明的这个库我明明就刚安装好。google后才知道,原来还是和path有关,在ld.so.conf下添加/usr/local/lib搜索路径,并输入指令

# ldconfig

这才使ffmpeg成功运行,而此时的OpenCV程序也全都正常运行啦!

 

PS:在今天的漫漫搜索路上,我用百度时被这位壮士给抓了个正着,顿时羞愧难当。。。