ubuntu16.04 在cuda9.0环境下编译安装opencv2.4.13.7
安装步骤:
1.安装cuda9.0:https://blog.csdn.net/zhuangwu116/article/details/81063234
2.安装依赖包:

sudo apt-get install build-essential
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install cmake git libgtk2.0-dev pkg-config

这里还需要安装解码音视频库,安装解码音视频库有两种方法:
(1)一种是编译安装:
(2)另一种是命令安装:

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev

如何已经编译安装解码视频库的可以跳过,不需要命令安装,以免冲突。
3.下载代码:

git clone https://github.com/opencv/opencv.git
cd opencv
git checkout -b 2.4.13.7

或者你也可以直接下载压缩包 地址
4.修改opencv编译脚本

修改opencv编译的脚本是因为两点:

1.在cuda9里面,NVIDIA把 libnppi.so换成libnppc.so libnppial.so libnppicc.so libnppicom.so libnppidei.so libnppif.so libnppig.so libnppim.so libnppist.so libnppisu.so libnppitc.so libnpps.so

2.cuda9里面不支持‘ compute-20 ’

1.解决第一个问题:
修改opencv/cmake/FindCUDA.cmake 文件,将524行的

unset(CUDA_nppi_LIBRARY CACHE)

修改为

unset(CUDA_nppial_LIBRARY CACHE)
unset(CUDA_nppicc_LIBRARY CACHE)
unset(CUDA_nppicom_LIBRARY CACHE)
unset(CUDA_nppidei_LIBRARY CACHE)
unset(CUDA_nppif_LIBRARY CACHE)
unset(CUDA_nppig_LIBRARY CACHE)
unset(CUDA_nppim_LIBRARY CACHE)
unset(CUDA_nppist_LIBRARY CACHE)
unset(CUDA_nppisu_LIBRARY CACHE)
unset(CUDA_nppitc_LIBRARY CACHE)

修改opencv/cmake/FindCUDA.cmake 文件,将799行和801行的

find_cuda_helper_libs(nppi)
set(CUDA_npp_LIBRARY"${CUDA_nppc_LIBRARY};${CUDA_nppi_LIBRARY};${CUDA_npps_LIBRARY}")

修改为

find_cuda_helper_libs(nppial)
find_cuda_helper_libs(nppicc)
find_cuda_helper_libs(nppicom)
find_cuda_helper_libs(nppidei)
find_cuda_helper_libs(nppif)
find_cuda_helper_libs(nppig)
find_cuda_helper_libs(nppim)
find_cuda_helper_libs(nppist)
find_cuda_helper_libs(nppisu)
find_cuda_helper_libs(nppitc)
set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppial_LIBRARY};${CUDA_nppicc_LIBRARY};${CUDA_nppicom_LIBRARY};${CUDA_nppidei_LIBRARY};${CUDA_nppif_LIBRARY};${CUDA_nppig_LIBRARY};${CUDA_nppim_LIBRARY};${CUDA_nppist_LIBRARY};${CUDA_nppisu_LIBRARY};${CUDA_nppitc_LIBRARY};${CUDA_npps_LIBRARY}")

2.解决第二个问题方案
更改 OpenCVDetectCUDA.cmake 文件,把有关 ‘ compute-20 ’ 的修改掉。
将74行中的

73    if(CUDA_GENERATION STREQUAL "Fermi")
 74     set(__cuda_arch_bin "2.0 2.1(2.0)")
 75     elseif(CUDA_GENERATION STREQUAL "Kepler")
 76     if(${CUDA_VERSION} VERSION_LESS "5.0")
 77       set(__cuda_arch_bin "3.0")
 78     else()
 79       set(__cuda_arch_bin "3.0 3.5")
 80    endif()

修改成

73    if(CUDA_GENERATION STREQUAL "Fermi")
 74     set(__cuda_arch_bin "3.0 3.5")
 75     elseif(CUDA_GENERATION STREQUAL "Kepler")
 76     if(${CUDA_VERSION} VERSION_LESS "5.0")
 77       set(__cuda_arch_bin "3.0")
 78     else()
 79       set(__cuda_arch_bin "3.0 3.5")
 80    endif()

将107行

104      if(${CUDA_VERSION} VERSION_LESS "5.0")
105         set(__cuda_arch_bin "1.1 1.2 1.3 2.0 2.1(2.0) 3.0")
106       elseif(${CUDA_VERSION} VERSION_GREATER "6.5")
107         set(__cuda_arch_bin "2.0 2.1(2.0) 3.0 3.5")
108       else()
109         set(__cuda_arch_bin "1.1 1.2 1.3 2.0 2.1(2.0) 3.0 3.5")
110       endif()
111       set(__cuda_arch_ptx "3.0")
112     endif()

修改成

104      if(${CUDA_VERSION} VERSION_LESS "5.0")
105         set(__cuda_arch_bin "1.1 1.2 1.3 2.0 2.1(2.0) 3.0")
106       elseif(${CUDA_VERSION} VERSION_GREATER "6.5")
107         set(__cuda_arch_bin "3.0 3.5")
108       else()
109         set(__cuda_arch_bin "1.1 1.2 1.3 2.0 2.1(2.0) 3.0 3.5")
110       endif()
111       set(__cuda_arch_ptx "3.0")
112     endif()

5.编译安装OpenCV

mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j7 #此处看您的cpu内核数,本人机器8核
sudo make install

6.测试OpenCV

$ python
>>import cv2
>>print cv2.__version__

参考:https://docs.opencv.org/2.4.13.7/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation
参考:http://wgshun.top/2018/06/ubuntu-install-opencv/
 ————————————————  
版权声明:本文为CSDN博主「径向基」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhuangwu116/article/details/81136117

ubuntu16.04 在cuda9.0环境下编译安装opencv2.4.13.7相关推荐

  1. cuda9.2环境下pip安装tensorflow非官方轮子

    cuda9.2环境下pip安装tensorflow非官方轮子 对于tensorflow,官方的预编译版本只支持cuda9.0,如果是cuda9.2需要自己编译安装. 但是,github上能够查到热心的 ...

  2. linux mysql5.6编译_Linux 环境下编译安装MySQL5.6的笔记记录

    一.首先搭建好Linux环境,我这边使用的是redhat enterprise 6.5,并且建议磁盘划分逻辑卷,以便后期的扩容工作. 二.环境搭建好了之后,我们就要去准备MySQL的安装文件,到现在为 ...

  3. 【c语言 gcc9.1.0环境下编译报错】error: ‘true’ undeclared (first use in this function)

    问题 网上验证一个单链表是否有环的c语言demo,放到gcc9.1.0的环境下编译,发现编译报错: error: 'true' undeclared (first use in this functi ...

  4. ubuntu16.04+GTX1060+ CUDA9.0+CUDANN7.0 tensorflow(GPU)安装,实测有效,安装包我放在云盘中,直接下载使用。

    最近在运行一些 semantic segmentation 的代码,好多都是GPU版本的,自己就安装一下,记录一下,开始错了好多次,最后参考了一些文章,发现这个版本问题很重要,我用的是一下版本cuda ...

  5. linux编译ice,linux环境下编译安装ICE

    前面我们讲过了在linux环境下通过rpm的方式来安装ICE,这种安装方式可以是比较简单的,自己在安装过程中发现后面PHP无法装在IcePHP.sp模块,也有可能自己在安装过程中某个地方出错了.又尝试 ...

  6. Centos7环境下编译安装Mysql

    一..Mysql编译安装 1.1 环境介绍 当前环境是虚拟机中最小化安装的Centos7, 防火墙开启状态. 安装Mysql5.5.62仅用于学习 [root@localhost MySQL-5.5. ...

  7. linux64位系统需要安装32位mysql_在Ubuntu16.04 Linux 64位环境下安装二进制版本MySQL 8.0.13...

    a.MySQL依赖于libaio库.如果此库不在本地安装,则数据目录初始化和随后的服务器启动步骤将失败.如果需要,请使用适当的包管理器安装它.例如,基于云计算的系统: hell> apt-cac ...

  8. ubuntu20.04+x86_64+virtualbox6.7 环境下编译xenomai内核和实时性测试[详解]

    下面是针对实时系统Xenomai使用的一些记录,实时系统在工业自动化,机器人等智能行业是必需会用到的. 简述 xenomai是众多inux实时性解决方案中的一种,通过在linux的基础上添加一个RTO ...

  9. 在RHEL4的GNOME环境下编译安装eva0.4.1

    今天在RHEL4中装上了eva0.4.1因为网上没找到el4的rpm包,所以只有自己编译了!过程如下: (我把安装盘到cp到/cd/rhel4/cds中了) $su $cd /cd/rhel4/cds ...

最新文章

  1. 微软将发布5月安全漏洞补丁 修补PPT
  2. 值得收藏的JSP连接mysql数据库的例子
  3. docker 添加端口映射_Docker快速搭建PHP开发环境详细教程
  4. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明) AC(带悔贪心)
  5. Xamarin开发IOS笔记:切换输入法时输入框被遮住
  6. %02 java_02_Java语法
  7. 图片--Android加载图片导致内存溢出(Out of Memory异常)
  8. service mysql k8s_Kubernetes(k8s)中文文档 名词解释 Services_Kubernetes中文社区
  9. Java Web架构演变
  10. Java Proxy 动态代理原理剖析
  11. db powerdesign 入门
  12. 研究了一下WORD的斜体,角度约20度
  13. 安卓控件显示等宽字体的办法
  14. icem二维非结构网格划分_ICEM_CFD划分六面体结构网格
  15. Kindle4rss中文rss资源推荐~
  16. Python爬虫——Ajax爬取今日头条街拍美图
  17. 现代 C++ 编译时 结构体字段反射
  18. scikit-learn广义线性模型之最小二乘法
  19. u盘iso安装服务器系统怎么安装win7系统安装方法,u盘iso安装系统,小猪教您u盘怎么安装win7系统...
  20. java动效_前端实现炫酷动效_Lottie-前端实现AE动效

热门文章

  1. boost::local_shared_ptr相关的测试程序
  2. boost::math::quadrature::tanh_sinh用法的测试程序
  3. boost::math::find_location用法的测试程序
  4. GDCM:将一个DICOM文件转换为另一个DICOM文件测试
  5. ITK:图像的区域最大值
  6. DCMTK:简单存储服务类提供者
  7. C语言创建map,遍历map
  8. VTK:可视化算法之PineRootConnectivity
  9. C语言链表返回具有的回文序列的算法(附完整源码)
  10. 为什么构造函数不能声明为虚函数,析构函数可以,构造函数中为什么不能调用虚函数?