您的位置:首页 > 编程语言 > Qt开发

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

2015-07-25 20:38 1351 查看
=============================概述=================================

在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命令。






内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cuda opencv qt5 nvidia ffmpeg