在CENT OS 7.0 64位系统上源码编译安装OPENCV3.0以及CUDA7.0,支持CUDA开发,并集成QT5.5.0的开发环境

=============================概述=================================
在CENT OS 7.0 64位系统上源码编译安装OPENCV,支持CUDA,并集成QT的开发环境,整体过程如下:
1,安装操作系统,我使用U盘安装,可参考网络上的U盘安装盘制作的文章;
2,配置操作系统,参考http://seisman.info/linux-environment-for-seismology-research.html
3,安装显卡驱动,在命令行模式下进行,下载地址在NVIDIA官网;
4,安装CUDA 7.0,在命令行模式下进行,下载地址在NVIDIA官网;
5,安装基础库,参考下面的第三部分1到43的安装内容;
6,安装X264,注意安装选项:#./configure --enable-shared --enable-pic
7,安装FFMPEG,注意安装选项,必须设置CXXFLAGS="-fPIC"和CFLAGS="-fPIC"以及--enable-pic,并要注意不要使用--enable-static和--disable-static
8,安装QT5.5.0,到官网上下载,现在QT发展挺快,最新的版本为5.5.0,功能也非常棒,相关的开发工作比MS VC简单直观;
9,安装依赖库,参考下面的第三部分1到43的安装内容;
10,设置编译参数,参考重点注意事项:
11,源码编译
12,编译安装

13,开发验证,在代码的头文件里包含OPENCV的库,并在项目的xxxx.pro文件里添加相关的应用,如下:

INCLUDEPATH += /usr/local/include \
                /usr/local/include/opencv \
                /usr/local/include/opencv2

LIBS += /usr/local/lib/libopencv_calib3d.so\
       /usr/local/lib/libopencv_core.so\
       /usr/local/lib/libopencv_features2d.so\
       /usr/local/lib/libopencv_flann.so\
       /usr/local/lib/libopencv_highgui.so\
       /usr/local/lib/libopencv_imgcodecs.so\
       /usr/local/lib/libopencv_imgproc.so\
       /usr/local/lib/libopencv_ml.so\
       /usr/local/lib/libopencv_objdetect.so\
       /usr/local/lib/libopencv_photo.so\
       /usr/local/lib/libopencv_shape.so\
       /usr/local/lib/libopencv_stitching.so\
       /usr/local/lib/libopencv_superres.so\
       /usr/local/lib/libopencv_video.so\
       /usr/local/lib/libopencv_videoio.so\
       /usr/local/lib/libopencv_videostab.so

==========================安装过程====================================
下面的具体的过程记录。
1,在命令行模式下安装nvidia驱动以及CUDA TOOL 7.0,命令行与图形模式切换命令如下:
sudo systemctl set-default multi-user.target #命令行模式
sudo systemctl set-default graphical.target #图形模式
Ctrl + F2重启计算机
2,以下是参考过的博文,感谢相关的作者。
http://seisman.info/linux-environment-for-seismology-research.html
http://blog.chinaunix.net/uid-23069658-id-4018842.html
http://www.ozbotz.org/opencv-installation/
http://stackoverflow.com/questions/8370028/strange-linker-error-while-compiling-opencv2-3-1-on-ubuntu-11-10
http://blog.chinaunix.net/uid-20662363-id-3036581.html
http://3y.uu456.com/bp_7edvv509i00ne2c1faxc_1.html
http://www.aichengxu.com/view/52231
http://www.it165.net/pro/html/201407/17019.html
http://jingyan.baidu.com/article/e75057f2c8d6e4ebc91a89cd.html
http://blog.csdn.net/Etiennezhao/article/details/46574729
http://www.cnblogs.com/zjoch/archive/2013/05/16/3082002.html
http://blog.csdn.net/dgyanyong/article/details/12052857
http://www.linuxidc.com/Linux/2014-11/109840.htm
http://blog.csdn.net/season_hangzhou/article/details/24399371
http://ju.outofmemory.cn/entry/25624
http://ju.outofmemory.cn/entry/25625
http://www.linuxidc.com/Linux/2015-02/112693.htm
http://blog.csdn.net/bendanban/article/details/41280859
http://bbs.chinavideo.org/forum.php?mod=viewthread&tid=19718&extra=page%3D1
http://www.centoscn.com/image-text/install/2014/0712/3284.html
http://blog.csdn.net/wangyaninglm/article/details/39997113
3,主要的安装库以及安装顺序,相关的顺序最好不要打乱。
说明:因为不同的版本可能有差异,在安装的时候,注意使用通配符*通过YUM/APT-GET来查找相关的选项;
在下面的安装过程中,并不表示所有的库都是通过YUM安装的,有的会找不到源,那就通过手动下载源码进行,手动下载的
时候,一般可以考虑优先安装最新的版本,如果是在发现有问题,再考虑降低版本安装。
安装,安装的过程中都采用默认的--prefix==/usr/local选项,这个选项你不指定的时候都默认到了/usr/local;
需要特别注意的时候有编译报错的时候,安装一下*-dev的库就可以解决问题,具体的方式就是通过YUM的前后通配符
查找相关的安装包,你也可以直接使用sudo yum install *xxxyyy*来安装所有可能需要的包,你可以在系统给出的
安装包列表里通过调整通配符的位置以及关键词筛选你需要的按照包。
1,sudo yum install *faac*
2,sudo yum install *lame*
3,sudo yum install *ogg*
4,sudo yum install *theora*
5,sudo yum install *vorbis*
6,sudo yum install *vo-aacenc*
7,sudo yum install *xvid*core
8,sudo yum install *cmake*
9,sudo yum install  libavcodec*
10,sudo yum install lib*raw1394*
11,sudo yum install lib*dc1394*
12,sudo yum install lib*freetype* 2.5
13,sudo yum install *fribidi*
14,sudo yum install fontconfig
15,sudo yum install libass
16,sudo yum install openssl
17,sudo yum install librtmp
18,sudo yum install libspeex
19,sudo yum install twolame
20,sudo yum install *opencore*
21,sudo yum install *yasm* #先安装
#安装X264以及FFMPEG之前,先卸载:sudo yum remove ffmpeg x264 libx264-dev  
22,sudo yum install *x264* #./configure --enable-shared --enable-pic
23,sudo yum install *xvid*
24,sudo yum install *autoconf*
25,sudo yum install *frei0r*
26,sudo yum install nettle-3.1.tar.gz
27,sudo yum install p11-kit
28,sudo yum install gnutls-3.4.3.tar.xz //./configure --enable-shared --with-included-libtasn1 --without-p11-kit //找不到的时候手动下载
29,sudo yum install LIBIDN
30,sudo yum install *libunbound*
31,sudo yum install *opus*//单独安装库文件
32,sudo yum install rtmpdump
33,sudo yum install schroedinger
34,sudo yum install librtmp*
35,sudo yum install *speex*
36,sudo yum install *soxr*
37,sudo yum install vo-amrwbenc-0.1.3 #下载
38,sudo yum install libvpx*
39,sudo yum install qt-gstreamer*
40,sudo yum install gstreamer*
41,sudo yum install *v4l*
42,sudo yum install *libv4l*
43,补充安装,在网络上找一下。
yum install cmake gcc gcc-c++ gtk+-devel gimp-devel gimp-devel-tools gimp-help-browser zlib-devel libtiff-devel libjpeg-devel libpng-devel gstreamer-devel libavc1394-devel libraw1394-devel libdc1394-devel jasper-devel jasper-utils swig python libtool nasm
=======================注意事项=======================================
重点注意事项:
1,X264安装选项:
sudo ./configure --enable-shared --enable-pic
2,ffmpeg-2.7.2安装选项:
sudo CXXFLAGS="-fPIC" CFLAGS="-fPIC" ./configure  --enable-shared --enable-gpl --enable-version3 --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-zlib --enable-libfaac --enable-nonfree --enable-postproc --enable-x11grab --enable-memalign-hack --enable-pthreads --enable-pic
3,OPENCV编译选项:
3.1,为了加快编译,可以将CUDA_ARCH_BIN中的数字设置为目标GPU的Compute Capability。
比如本机显卡为GTX750 TI ,将CUDA_ARCH_BIN设置为5.0,CUDA_ARCH_PTX为5.0。
CUDA_ARCH_PTX及CUDA_ARCH_BIN中仅保留所需GPU架构,具体的计算能力可以查询以下地址:
确定所需架构,请查询https://developer.nvidia.com/cuda-gpus
3.2 确认选项
  WITH_CUDA ON;
  CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE OFF
  WITH_CUBLAS ON
  WITH_CUDA ON
  WITH_OPENGL ON
  WITH_OPENCL ON
  WITH_TBB ON
  BUILD_DOCS ON
  BUILD_EXAMPLES ON
  WITH_GSTREAMER ON   
  WITH_JPEG   ON
  WITH_GTK  ON
  WITH_PNG   ON
  WITH_FFMPEG ON   
  WITH_V4L ON
  WITH-QT ON
在CMAKE的过程中,需要多次执行,并修改配置参数,直到不报错为止,具体可以参考网络上的文章;
3.3 下载和安装TBB,具体可以参考网上的文章
修改环境变量 
shell下执行: # vim ~/.bashrc 

在最后添加 source /opt/Tbb/tbb43_20150611oss/tbb43_20150611oss/build/linux_intel64_gcc_cc4.8.3_libc2.17_kernel3.10.0_release/

/tbbvars.sh,对应的链接库就是-ltbb了
4,相关的环境变量与库文件位置配置

4.1,在/etc/ld.so.conf.d/目录下添加各个相关库的conf文件,具体的命令可以参考如下:
sudo vim /etc/ld.so.conf.d/xxxyyyxx-x86-64.conf,在新建的文件里添加相关库文件的路径,如:/usr/local/cuda/lib
添加完成之后通过sudo ldconfig命令进行更新;
4.2,在/etc/profile文件里添加PATH以及PKG_CONFIG_PATH和LD_LIBRARY_PATH,具体如下:
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/local/lib64:/usr/lib:/usr/lib64:/usr/local/cuda/lib:/usr/local/cuda/lib64
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/QT/Qt5.5.0/5.5/gcc_64/lib
PATH=$PATH:/usr/local/cuda-7.0/bin:/usr/local/cuda/bin:/usr/local/bin:/opt/QT/Qt5.5.0/5.5/gcc_64/bin
export PATH
export LD_LIBRARY_PATH
export PKG_CONFIG_PATH
=============
添加完毕之后通过source /etc/profile进行更新,相关的设置是否正确,可以通过sudo env来检查环境变量的配置是否正确,也可以直接执行所安装的可执行文件的命令来检查环境变量配置是否正确;
4.3,在安装的过程中,可能会提示库文件找不到之类的,或者命令找不到,可以在这个时候考虑执行 export 和 ldconfig命令。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值