编译opencv + cuda + cudnn 的注意事项

linux 版,需要使用ubuntu 发行版,避免使用centos 或其他RED HAT 系列的发行版,RED HAT 系列的发行版包不太好找,必须注意需要从nvidia 上下载官方的显卡或运算卡驱动,不要使用第三方的驱动。建议下载直接运行的后缀 .run  的包不要使用tar.gz  需要编译的包,这样可以更省事。另外需要注意的是.run  的包必须在命令行下运行,并且不要运行x window。如有x window  的进程在运行,需使用 systemctl stop gdm  关闭。安装显卡驱动后,下载并安装对应版本的nvidia  官方cuda tool kit。 下载 .run 版本即可。 需要注意的是,在安装过程中不要安装tool kit 包里的 显卡驱动,否则会报错。下载并解压 nvidia 官方的 cudnn 库,需要注意的是,新版本需要把include 和 lib  全部复制到 cuda  对应的目录,这里大多数网上文档都说只把cudnn.h 和 某几个头文件复制过去,这是错的,这是个坑,新版本这么干的话在编译OPENCV时会报找不到 cudnn 。最后,需要注意的是在编译OPENCV时,他会查找系统里的PYTHON JAVA等其他平台的相关库和运行环境并编译对应的库,LINUX上他默认找到并编译的是PYTHON2.7  对于现在流行的PYTHON 3.X 他默认是不查找的,需要在cmake  命令上加上对应的参数,让他查找PYTHON3.X 并且强制关闭PYTHON2 ,才能编译PYTHON3的库。编译后,需要在opencv build 目录下找到并运行python setup.py install 安装编译生成的OPENCV到python3环境,如果用的是VENV 的话,就要先activate VENV 然后再用VENV 的python 执行安装