1.环境说明:
win10 操作系统 64 位
vs2017 版本是15.88
显卡:NVIDIA GeForce 940MX
机器的cup是: inter i5 2.3G HZ 双核。
2. 用途说明:
我主要是想编译一个opencv3.4.3下边可以用cuda加速的版本,但发现还是有花不少时间的。
3. 编译过程主要是要注意的地方:
1.cuda sdk 的安装
这个在 https://developer.nvidia.com/cuda-toolkit-archive
我下载的是9.2的版本,我下载了10.00 安装时出错了,不知什么原因,可能是我机器的显卡太旧了吧!
这个版本我用默认选项安装的,安装后用工具看一下是否安装成功。
查找这个程序 bandwidthTest.exe 在命令行里运行一下,如果成功可以看到 PASS,如果失败可以看到失败。
第一次就是没有安装成功,导致后边cmke时提示找不到cuda 选项,如果这里成功了,在cmake时可以看到系统检测到cuda9.2。
安装成功后,重启电脑。
也不用设什么环境变量,重启后我看了下,环境变量已是0k的。
安装时不要改默认的目录,我改过一次发现有问题。
2.cuda9.2的编译就要有些麻烦
主要是这个版本原来是2015上边编译的,现在我要用2017所以就有问题了,怎么办?
第一步
”vs 安装 =》 单个组件 =》选择vs2017 版本 15.4 v14.11 工具集“ 进行安装。
第二步
找到vs2017的
c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat 文件
进入到这个目录:运行
>cd c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat
>vcvarsall.bat x64 -vcvars_ver=14.11
运行后可以看看现在是不是这个版本的cl
> cl -BV
编译器扫描遍数:
c:\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\cl.exe: 版本 19.11.25548.2如果看上边就可以了。
第三步
编译时会出现 下边这样的错误,就是这个地方版本要改
#if _MSC_VER < 1600 || _MSC_VER > 1912
改成 1920 高点没问题。
#if _MSC_VER < 1600 || _MSC_VER > 1920
要用管理员打开,保存。
这三个地方修改后就可以用2017来进行编译了。
第四步
下载opencv cmake opencv_contrib 可以看我原来的blog上边有的,在cmke 选项时去了WITH_LAPACK 这一项,否则会找其它的库的,什么openblas 库。
第五步
可以进行编译了,就是太慢了大概在我机器上边要用5个小时,中途一度以为有问题,差点停止掉,才能编译完debug 和release 两个版本。