Opencv Linux环境搭建


注:此篇博客最后没有在linux搭建成功Opencv,请移步:http://blog.csdn.net/tanhngbo/article/details/40403885

来查看成功的搭建。

另外,这里是成功在windows里面搭建的效果:http://blog.csdn.net/tanhngbo/article/details/40319805



在windows下面搞opencv太蛋疼了,这次在linux(ubuntu 10.04)搭建一把。


千辛万苦完全卸载了残留的vmware,又千辛万苦装上了vmware-tools

接下来按照官网的教程来看看:

http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_install/linux_install.html


先装上这些软件:

[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev


这里网速太慢,感觉要好久。


git装不上去,后来改成了git-core就可以了


接下来使用

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

发现cmake版本太旧,于是从官网下载:http://www.cmake.org/download/

我偷懒,下载了binary:cmake-3.0.2-Linux-i386.tar.gz

然后将解压出来的拷贝到/usr 里面


然后接下来可以build了。

CMake Error at 3rdparty/ippicv/downloader.cmake:75 (message):
  ICV: Failed to download ICV package: ippicv_linux_20140513.tgz.
  Status=6;"couldn't resolve host name"


真是桑不起啊,这里有人回复:

http://answers.opencv.org/question/40425/opencv-build-fails-because-i-cannot-download-icv/

先偷懒,屏蔽它吧。


cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local  -D WITH_IPP=OFF ..

接下来使用:

make -j8 

蛤蛤,终于看到编译画面了。





/home/tan/Desktop/opencv-3.0.0-alpha/modules/core/src/ocl.cpp: In member function ‘void cv::ocl::Image2D::Impl::init(const cv::UMat&, bool, bool)’:
/home/tan/Desktop/opencv-3.0.0-alpha/modules/core/src/ocl.cpp:4635: error: #pragma GCC diagnostic not allowed inside functions
/home/tan/Desktop/opencv-3.0.0-alpha/modules/core/src/ocl.cpp:4635: error: #pragma GCC diagnostic not allowed inside functions
/home/tan/Desktop/opencv-3.0.0-alpha/modules/core/src/ocl.cpp:4638: error: #pragma GCC diagnostic not allowed inside functions
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/src/ocl.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2
make: *** [all] Error 2

看起来是gcc太旧了。


找到一个mirror:

http://mirrors-ru.go-parts.com/gcc/releases/gcc-4.9.1/

从里面下载最新的gcc。

有吓人的110MB,不管了,先下着吧。




下载完gcc,编译的时候发现:

configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.

这下又得坑好久,于是准备换一个opencv版本。


又上官网抓了一个opecv 2.4.9版本,这下应该好点了吧!

再不行的话我再搞个旧版本的。


果然给力啊,这次直接使用

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

就可以编译了!

我现在的配置是CMAKE更新到了3.0.2,gcc没有更新,是4.4.3版本


这下又出问题啦!

error: ‘avformat_free_context’ was not declared in this scope

http://answers.opencv.org/question/32801/unresoved-avformat_free_context-was-not-declared/

这里显示是ffmpeg版本太旧的原因。我发现我的机器上根本没装。


sudo apt-get install ffmpeg


好像装出问题了,网连不上。原来是桥接的问题,之前用NAT连不上,只得用桥接。


随即下载ffmpeg-1.2.9.tar.gz,使用


./configure --disable-yasm

make -j4


sudo make install


安装好了。

接下来再编译opencv又失败了,一大串trace信息,算了,重新安装ubuntu 12.04试试看吧








原文地址:https://www.cnblogs.com/tanhangbo/p/4282620.html