0 设备信息
dell-15r-1518 intel i5-3210 h4000 hd7670(禁用)
ubuntu 12.04.1LTS 64bit KDE4.8.5
1 需要列表
根据opencv官方给出的Required Packages,需要
编译器GCC4.4.x或者更新
编译工具CMake2.6或者更新的
git(這個不是必須的,如果沒有需要經常更新的話,我們下載個最新源碼包即可)
GTK+的庫
pkgconfig
Python2.6或者更新的和Numpy1.5或者更新版本
ffmpeg
我們還需要X264解碼器
2 安裝過程
2.0 安装gcc环境
sudo apt-get install build-essential
2.1 安装cmake
sudo apt-get install cmake
2.2 安装pkg-config
sudo apt-get install pkg-install
2.3 安装python,Numpy
从官网bz2直接下载压缩包,或者用wget
root或者sudo权限
cd python目录 ./configure --prefix=/usr/local/python目录 make make install
安装Numpy
sudo apt-get install python-numpy
2.4 移除旧版本的ffmpeg和x264
sudo apt-get remove ffmpeg x264 libx264-dev
配置安装ffmpeg和x264依赖的包
sudo apt-get update sudo apt-get install build-essential checkinstall git cmake libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev texi2html yasm zlib1g-dev
安装gtk库,gstreamer,libjpeg
gstreamer
sudo apt-get install libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-tools gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg
gtk库
sudo apt-get install libgtk2.0-0 libgtk2.0-dev
libjpeg
sudo apt-get install libjpeg8 libjpeg8-dev
2.5安装x264和ffmpeg
下载一个x264的bz2包,wget或直接下载
tar xvf x264-snapshot-20130131-2245-stable.tar.bz2 cd x264-snapshot-20130131-2245-stable
编译安装x264,这里是重点,32位系统和64位系统编译命令有区别
32位
./configure --enable-static make make install
64位
./configure --enable-shared --enable-pic
否则64位会出现下面这个问题
[ 25%] Building CXX object modules/highgui/CMakeFiles/opencv_highgui.dir/src/bitstrm.cpp.o Linking CXX shared library ../../lib/libopencv_highgui.so /usr/bin/ld: /usr/local/lib/libavcodec.a(avpacket.o): relocation R_X86_64_32S against `av_destruct_packet' can not be used when making a shared object; recompile with -fPIC /usr/local/lib/libavcodec.a: could not read symbols: Bad value
下载一个ffmpeg,建议不要太新, 比下载的opencv旧一点吧最好。
tar xvf ffmpeg-0.11.1.tar.bz2 cd ffmpeg-0.11.1
编译安装ffmpeg,老规矩,32位和64位编译命令不同,
32位
./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab make sudo make install
64位在编译的时候后面加上--enable-shared和--enable-pic
2.6安装最新版的v4l(video for linux)
这个也是不用太新,稍微旧一点。
wget http://www.linuxtv.org/downloads/v4l-utils/v4l-utils-0.8.8.tar.bz2 tar xvf v4l-utils-0.8.8.tar.bz2 cd v4l-utils-0.8.8 make sudo make install
2.7编译OpenCv2.4.3,配置linux
解压缩
tar xvf OpenCV-2.4.3.tar.bz2
像windows一样创建一个build文件夹用来编译文件
cd OpenCv-2.4.2/ mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE ..
确定cmake输出包含下面结果
found gstreamer-base-0.10 GTK+ 2.x: YES FFMPEG: YES GStreamer: YES V4L/V4L2: Using libv4
现在可以开始编译OpenCv了
make sudo make install
3 配置环境
3.1 添加OpenCv路径
export LD_LIBRARY_PATH=/usr/local/lib
或者把这句命令添加到.bashrc中
接着 添加/usr/local/lib 到/etc/ld.so.conf.d/opencv.conf
添加后 更新一下ld.so.conf
sudo ldconfig /etc/ld.so.conf
3.2 配置pkg-config
添加下面两行到/etc/bash.bashrc
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH
4 大功告成,可以编译sample和opencv的文件了。。。。
g++ `pkg-config opencv --cflags` my_code.cpp -o my_code `pkg-config opencv --libs`
下面爆图片一张
参考:
http://blog.csdn.net/yr119111/article/details/7666106
http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_install/linux_install.html