当前位置:   article > 正文

Ubuntu16.04从零开始配置QT+OPEN CV3.2+CONTRIB+CUDA8.0+CUDNN5.1+TENSORFLOW_ubuntu qt openc路径配置

ubuntu qt openc路径配置

新电脑重装,要重新配置环境,根据网上的博客什么的,踩了不少坑,也重装不少的Ubuntu,记得最清楚的是在调Open CV的error的时候使用过一条sudoapt-get autoremove filename 的时候直接把系统的重要依赖项全部删完了,并且还不能重新install回去,只能重装了….

回忆下安装过程,然后写个博客,可能以后还能用到,参考的博客会列在后面。

 

1.Ubuntu系统的初始化安装(除java8和源之外其他都是可选内容)

1.0 换apt源(我用的aliyun的)

      sudo gedit/etc/apt/sources.list   #用文本编辑器打开源列表

然后将文件中的内容改为

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

       然后 执行 sudo apt-get update

 

1.1 删除 Amazone的链接

       sudo apt-get remove unity-webapps-common

 

1.2 删除基本不用的自带软件

sudo apt-getremove thunderbird totem rhythmbox empathy brasero simple-scan gnome-mahjonggaisleriot gnome-mines cheese transmission-common gnome-orca webbrowser-appgnome-sudoku landscape-client-ui-install

 

sudo apt-getremove onboard deja-dup

 

1.3 安装 Vim

       sudo apt-get installvim

 

1.4 安装Chrome

到https://dl.google.com/Linux/direct/google-chrome-stable_current_amd64.deb 下载最新的安装文件。

sudo apt-getinstall libappindicator1 libindicator7

sudo dpkg -igoogle-chrome-stable_current_amd64.deb 

sudo apt-get -finstall

 

1.5 安装搜狗输入法

1、首先到搜狗输入法官网下载搜狗输入法,下载的是个deb文件。

      搜狗输入法Linux版下载地址http://pinyin.sogou.com/linux/?r=pinyin

       2.打开System Setting→Language Support会提示下载一些依赖,等待即可

              添加源:sudoadd-apt-repository ppa:fcitx-team/nightly

           之后执行 sudo apt-get update

           安装fcitx sudo apt-get install fcitx

           安装fcitx配置工具 sudo apt-get install fcitx-config-gtk

           安装fcitx的tabll-all sudo apt-get install fcitx-table-all

           安装im-switchsudo apt-get install im-switch

 

 

           搜索fcitx查看是否完成安装

 

 

           在 Language Support中选则fcitx

      

           重启电脑安装搜狗输入法

           sudo dpkg -i sogoupinyin_2.2.0.0102_amd64.deb

           如果以上存在缺失依赖 执行sudo apt-get -f installation

           在fcitx configure 中配置sogou下图的左下角的+添加

 

 

1.6 安装OracleJava

sudo add-apt-repositoryppa:webupd8team/java 

sudo apt-getupdate 

sudo apt-getinstall oracle-java8-installer

终端中输入  java –version

如果显示的第一行不是java的版本号,会是Picked up JAVA_TOOL_OPTIONS:-javaagent:/usr/share/java/jayatanaag.jar这个提示,导致很多检测java版本号的脚本会运行出错,因此需要手动清除残留。

sudo rm /usr/share/upstart/sessions/jayatana.conf

删除/usr/share/upstart/sessions/jayatana.conf文件,重启之后再运行java -version就不会再有Picked
 up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar提示了。

 

1.7 安装Sublime Text3

先把这一步和下几步的源添加了

sudo add-apt-repository ppa:webupd8team/sublime-text-3 

sudo add-apt-repository ppa:diesch/testing

sudo add-apt-repository ppa:nilarimogard/webupd8 

安装 Sublime

sudo apt-getupdate 

sudo apt-getinstall sublime-text

 

1.8 安装经典菜单指示器

sudo apt-get install classicmenu-indicator

 

1.9安装系统指示器

sudo apt-get install syspeek

 

1.10 安装GitVPNC

sudo apt-get install vpnc git

 

1.11 安装axel

axel是Linux命令行界面的多线程下载工具,比wget的好处就是可以指定多个线程同时在命令行终端里下载文件。

sudo apt-get install axel

可以代替wget下载了

 

1.12安装Cmake

sudo apt-get install cmake

 

1.13安装Unrarrar文件解压)

sudo apt-get install unrar

 

1.14安装QQ

原理是借助CrossOver容器进行虚拟化启动QQ,这个QQ版本一般比较新(相比较wine),所以不会出现国际版的问题。但是资源占用大也是一个问题,不过现在机器基本都是16G内存以上,所以这个不成问题。

不过这个方法安装的qq有一个问题,在输入的时候,对话框文本显示为,然而发送出去,却是正确的。

下载文件:

(链接: https://pan.baidu.com/s/1o8yWUAQ 密码: b5bx)

·        apps.com.qq.im_8.1.17255deepin11_i386.deb

·        crossover-15_15.0.3-1_all.deb

·        crossover-15_15.0.3-1_all-free.deb

·        deepin-crossover-helper_1.0deepin0_all.deb

·        simsun.ttf

·        winewrapper.exe.so

只需要下载以上文件即可

a.安装

#安装32位库的支持

sudo dpkg--add-architecture i386 

sudo apt-get update 

sudo apt-get installlib32z1 lib32ncurses5

#安装CrossOver

sudo dpkg -icrossover-15_15.0.3-1_all.deb

sudo dpkg -icrossover-15_15.0.3-1_all-free.deb

sudo dpkg -ideepin-crossover-helper_1.0deepin0_all.deb

#如果中途出现依赖问题

sudo apt-get install -f

#然后再重新安装上一步操作

#安装QQ

sudo dpkg -i apps.com.qq.im_8.1.17255deepin11_i386.deb

 

b.解决qq乱码

       mv /opt/cxoffice/lib/wine/winewrapper.exe.so /opt/cxoffice/lib/wine/winewrapper.exe.so.bak
       cp winewrapper.exe.so /opt/cxoffice/lib/wine/
#设置字体
               cp simsun.ttf /opt/cxoffice/share/wine/fonts
 
       mv /opt/cxoffice/share/wine/fonts/ume-ui-gothic.ttf /opt/cxoffice/share/wine/fonts/ume-ui-gothic.ttf.bak
 

c.添加退出qq设置,不然重新登陆会报错

sudo gedit/usr/bin/killqq

#内容如下

ps aux|grep -v grep|grepwine|cut -c 9-15|xargs kill  

ps aux|grep -v grep|grepQQ|cut -c 9-15|xargs kill  

ps aux|grep -v grep|grepqq|cut -c 9-15|xargs kill  

pkill  plugplay.exe 

pkill  explorer.exe 

pkill  services.exe

#赋予执行权限

sudo chmod 777/usr/bin/killqq

启动CrossOver即可,第一次会提示需要安装依赖,同意即可。

 

 

2. 下载安装包

2.1 QT

Qt 下载页:https://www.qt.io/download-open-source/

可以下载各个系统各个版本的Qt

Qt 5.7.1下载链接:

链接1:Download

此链接为Qt 5.7.1的linux离线安装包

链接2:Download

此链接为Qt 5.7.1的linux离线安装包

 

 

2.2 Open CV

opencv 3.2.0下载链接:

链接1:Download1、 Download2

链接2:Download

 

2.3 Open CVcontrib

opencv_contrib 3.2.0 下载链接

链接1:Download

 

opencv_contrib各个版本下载链接:Download

如果想安装其他版本的opencv_contrib,可以在该链接下载,如果不需要,则不需下载,这里只是给出全部链接,方便收藏其他版本。

 

 

3. 安装

3.1安装Qt

1、将下载的安装文件qt-opensource-linux-x64-5.7.1.run拷贝到home/用户目录,如/home/user

2 、如果qt-opensource-linux-x64-5.7.1.run的属性中拥有者没有运行权限,则可用chmod命令添加执行权限:

Sudo chmodu+x qt-opensource-linux-x64-5.7.1.run

3 、在终端执行:

./qt-opensource-linux-x64-5.7.1.run

4、跳出安装界面,一直点击下一步,直到安装完成即可。(和OpenCV 的搭建在后面)

 

 

3.2 安装显卡驱动

       网上很多都是去自己下然后安装,我是选的利用系统的附加驱动安装的,也没有问题。

可在  SYSTEM SETTING->SOFTWARE&UPDATES中选择 addtional divers中选的安装(注意:选择beta版本)

重启电脑之后终端打开,执行nvidia-smi ,如果出现下面的界面即为成功

 

 

 

3.3安装一些依赖项

 
这里安装的依赖项是为后面的安装做准备的,反正是要安装的(当然后面还有一些要安装),这里一行一行复制到你的命令行执行就行。

sudo apt-get install libprotobuf-dev libleveldb-devlibsnappy-dev libopencv-dev

libhdf5-serial-dev protobuf-compiler

 
sudo apt-get install –no-install-recommends libboost-all-dev 


sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev 


sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

 

4.CUDA8.0

说明下,本来我是用的Anaconda的部分去作为Python的环境的,然而在Opencvmake的时候除了很多问题,最后便使用Ubuntu自带的就没报错了,同学们可以根据自己的情况,考虑是否装Anaconda

CUDA9.0现在也已经出现了,然而为了兼容性的考虑我还是选则装的8.0Cudnn5.1,如果有同学想尝试9.0的可以多去试试,踩坑才会有收获。

4.1 熟悉显卡信息和下载CUDA8.0安装包


首先是准备工作:

1.看自己的显卡是不是支持CUDA和显卡驱动版本 

2.下载CUDA8.0  


CUDA8.0:https://developer.nvidia.com/cuda-80-ga2-download-

archive  

准备工作已经做完,这时候,你已经知道了你的显卡的一些信息,需要的驱动和下载了一个cuda的run文件。

 

 

4.2 降级GCC 

在我们安装系统并且apt-get之后,通常GCC都会更新为新版本,我的是GCC 5.4.0,可以通过下面两条命令查看

Gcc–version

G++--version

如果GCC版本大于5.3.0,则需要降级GCC,因为安装CUDA8.0最高只支持到GCC5.3.0,那么接下来的工作是给GCC降级,这里给出的是手动编译源代码的方式。(你可以全程复制命令,一行一行复制,一行完成之后复制另一行) 


①下载GCC源码并且解压

wget ftp://mirrors.kernel.org/gnu/gcc/gcc-5.3.0/gcc-5.3.0.tar.gz (很大可能因为国内网络问题无法下载 ,可以去网上找相应的文件)
tar -zxvf gcc-5.3.0.tar.gz

②下载编译所需依赖项:

cd gcc-5.3.0//进入解包后的gcc文件夹

 
./contrib/download_prerequisites //下载依赖项 (这一步同样因为网络问题等待时间比较久,如果有无法下载的,同样去网上下载并且放在相关文件下)
cd .. //返回上层目录

③.建立编译输出目录:

mkdirgcc-build-5.3.0

④进入输出目录,执行以下命令,并生成makefile文件:

cdgcc-build-5.3.0 


../gcc-5.3.0/configure –enable-checking=release –enable-languages=c,c++ –

disable-multilib

⑤编译(这里会花一点时间):

make –j4(j4是jobs=4同时最多跑4个作业make自己会协调,如果CPU等资源不够可能小于4个。不过一般瓶颈都在硬盘,所以一般能看到4个进程一起跑。)

⑥.安装

sudo makeinstall

弄好了,然后你可以看一下自己的gcc版本 ,同样使用

Gcc–version

G++--version

 

 

4.3 安装CUDA

在CUDA下载的文件夹中,执行下面的操作安装

Sudo chmod a+x ./cuda_8.0.61_375.26_linux.run

service mdm stop

./cuda_8.0.61_375.26_linux.run

service mdm start

 

注意:执行后会有一些提示让你确认,在第二个提示的地方,有个让你选择是否安装驱动时(Install NVIDIA Accelerated Graphics Driver for Linux-x86_64361.62?),一定要选择否:因为前面我们已经安装了更加新的nvidia367,所以这里不要选择安装,因为CUDA附带的驱动存在一点问题,有的时候会造成开机黑屏的情况。 
    其余的都直接默认或者选择是即可。然后安装的时候会比你预想的要快很多。。。安装成功之后,会出来类似于下面形式的提示:

===========

= Summary =

===========

Driver: Not Selected

Toolkit: Installed in /usr/local/cuda-8.0

Samples: Installed in /home/textminer

Please make sure that

– PATH includes /usr/local/cuda-8.0/bin

– LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64,or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstallscript in /usr/local/cuda-8.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in/usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installationdid not install the CUDA Driver. A driver of version at least 361.00 isrequired for CUDA 8.0 functionality to work.

To install the driver using this installer, run thefollowing command, replacing with the name of this run file:

sudo .run -silent -driver

Logfile is /opt/temp//cuda_install_6583.log

 

4.4 配置CUDA的环境变量

到这里,你已经安装成功CUDA了,最后,还要多配置一下环境变量(文本编辑器,vim sublime什么的都可以): 

4.4.1 配置.bashrc

sudo gedit~/.bashrc 来编辑.bashrc配置文件,到文件最后,写入下面几句话(直接复制就行)

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}

exportLD_LIBRARY_PATH=/usr/local/cuda8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

export CUDA_HOME=/usr/local/cuda

 

 

4.4.2修改profile文件

修改/etc/profile文件,将cuda添加到环境变量中。【注:关于这一点,安装完cuda之后,命令行中有提示!!!细心看一下】

将/usr/local/cuda-7.0/bin添加到环境变量PATH路径中,这样一来,就可以在任何路径下调用cuda相关的可执行文件了。

将/usr/local/cuda7.0/lib64添加环境变量LD_LIBRARY_PATH 中,作为共享库使用。这样一来,后面编译Cuda Samples 和OpenCV时,就不会提示找不到库的错误了。

       同样适用 sudo gedit /etc/profile命令

将以下内容添加到文件/etc/profile的最后面,保存后,执行命令source/etc/profile,使配置生效。

PATH=/usr/local/cuda/bin:$PATH

export PATH

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64

export LD_ LIBRARY_PATH

 

4.4.3 添加cuda.conf

在目录/etc/ld.so.conf.d/下新建文件 cuda.conf,并添加如下内容。然后执行命令sudo ldconfig,使配置生效。

解释:下面第一行是上面提到的cuda库文件路径,后面3行是后来综合调试错误和其它博文总结得到的。所以,最好加上,省的出错哦。。。

/usr/local/cuda/lib64

/lib

/usr/lib

/usr/lib32

 

然后执行

sudoldconfig

使链接立即生效,并重启一下电脑。 

检查cuda是否配置好,在命令行中执行以下命令。

nvcc--version

 

4.5安装CUDA SAMPLES

为什么安装cudasamples?

一方面为了后面学习cuda使用,另一方面,可以检验cuda是否真的安装成功。如果cudasamples全部编译通过,没有一个Error(Warning忽略),那么就说明成功地安装了cuda。但如果没有通过编译,或者虽然最后一行显示PASS,但是编译过程中有ERROR,请自行GOOGLE解决之后,再向下安装,否则失之毫厘谬以千里!!!

make时,请使用make –j4,可以最大限度的使用cpu编译,加快编译的速度。

# 切换到cuda-samples所在目录

# 注意,换成自己的路径

cd /home/xuezhisd/NVIDIA_CUDA-7.0_Samples

# 编译 make (安装命令 sudo apt-get install cmake)

make –j

# 编译完毕,切换release目录

cd ./bin/x86_64/linux/release

# 检验是否成功

# 运行实例./deviceQuery

./deviceQuery

# 可以认真看看自行结果,它显示了你的NVIDIA显卡的相关信息。

 

cd/usr/local/cuda-8.0/samples/1_Utilities/deviceQuery 


sudo make ./deviceQuery

 

       出现了下面的你的GPU的一些信息的话,并且最后一行显示的为PASS的话,就恭喜你安装CUDA成功了。

 

 

5.CUDNN 
网址:https://developer.nvidia.com/rdp/cudnn-download 

可能要自己注册一下,之后下载其中的cuDNN v5.1 Library for Linux,下图中的第三个就是了。

 

下载的时候发现是一个压缩包,下完之后解压 ,解压出来是一个cuda文件夹,进去有两个文件夹,如下图

 
 
(提示:接下来的步骤命令直接复制就行,后面有讲解,复制方便一些) 
下载完cudnn5.0之后进行解压,cd进入cudnn5.1解压之后的include目录,在命令行进行如下操作:

sudo cp cudnn.h /usr/local/cuda/include/ #复制头文件

再将cd进入lib64目录下的动态文件进行复制和链接:

sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库

 
cd /usr/local/cuda/lib64/ 


sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件 


sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5 #生成软衔接

 
sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接

 

执行完之后,cuDNN算是安装完成了。\、但是,是否安装成功了呢,还得通过下面的cudnnsample测试。

5.1 CUDNNArchive

下载地址,找到对应的就行,我下载的V5https://developer.nvidia.com/rdp/cudnn-archive

#运行cudnn-sample-v5

tar –zxvf cudnn-sample-v5.tgz

cd cudnn-sample-v5

make

./mnistCUDNN

#该程序运行成功,说明cudnn安装成功。

此时可能出现错误:./mnist CUDNN: error while loading shared libraries: libcudart.so.6.5:cannot open…..这是因为路径设置没找到的问题,重新添加即可

sudo ldconfig /usr/local/cuda/lib64

 

6. OpenCV

首先肯定是先安装依赖了,官方列出了一些:

$ sudo apt-get installbuild-essential

$ sudo apt-getinstall cmakegit libgtk2.0-dev pkg-config libavcodec-devlibavformat-dev libswscale-dev

$ sudo apt-getinstallpython-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-devlibjasper-dev libdc1394-22-dev # 处理图像所需的包

$ sudo apt-getinstalllibavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev

$ sudo apt-getinstalllibxvidcore-dev libx264-dev #处理视频所需的包

$ sudo apt-getinstalllibatlas-base-dev gfortran #优化opencv功能

$ sudo apt-getinstall ffmpeg

 

在你喜欢的地方建立一个工作目录,随便什么名字,就在home目录下面建立了一个OpenCV的目录 


mkdir OpenCV 

 

进入到你下载的那个opencv文件夹,这时候建立一个build的文件夹,用来接收cmake之后的文件 mkdirbuild。 

 

cd build进入到build里面,运行这句命令(直接复制就行,参考了几个博客的集合,这个直接影响后面make的运行):

cmake-D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON-D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF -DOPENCV_EXTRA_MODULES_PATH=/home/wei/opencv-3.2.0/opencv_contrib-3.2.0/modules-D BUILD_EXAMPLES=ON -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_GTK=ON-D WITH_OPENGL=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -DBUILD_TIFF=ON ..

注意上面的..不能省

如果出现下图则正确(确认一下CUDA,PYTHON等等信息)

然后再build文件夹中执行

       Sudo make–j4

这一步需要运行很久很久,根据上面的Cmake生成的CMakeList.txt决定make时间,我是差不多2个半小时。

完成后,运行测试代码的时候可能遇到imshow出现缺少文件libv4l(好像是叫这个)重新安装sudo apt-get install libv4l-dev即可

然后运行个opencv的测试程序测试OKOpen CV安装成功。

 

7. TensorFlow

       网络上很多都是下载源文件然后bazel 编译,这样确实会更加贴合自己机器的硬件,然而直接用pip则会方便很多,这里我选择直接通过pip命令下载。

       首先安装依赖

                   sudo apt-get install python-numpyswigpython-dev python-wheel

       安装pip

sudo apt-get install python-pip python-dev

更换pip(国内的网络原因,我使用的清华大学的源)

Sudo gedit ~/.pip/pip.conf

如果没有则创建,修改内容为

[global]

 index-url = https://pypi.tuna.tsinghua.edu.cn/simple

利用pip安装TensorFlow

pip install tensorflow-gpu==1.2

注意不要直接pip install tensorflow-gpu不然会下载更高级的版本的,而我们所装的是CUDA8.0+CUDNN5.1,匹配不上,因此在运行的时候会爆errorlibcudnn.so.6:cannotopen sharedobject file: No such file or directory

验证TensorFlow是否安装正确

终端中运行python

>>> import tensorflowas tf

>>> hello = tf.constant('Hello, TensorFlow!')

>>> sess = tf.Session()

>>> print(sess.run(hello))

如果输出Hello, TensorFlow则代表TensorFlow安装成功。

Mnist测试集在http://blog.csdn.net/yhl_leo/article/details/50614444

 

参考

http://blog.csdn.net/lql0716/article/details/54564721

https://zhuanlan.zhihu.com/p/25304537

https://www.cnblogs.com/arkenstone/p/6490017.html

http://blog.csdn.net/xuezhisdc/article/details/48651003

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/599380
推荐阅读
相关标签
  

闽ICP备14008679号