一|前言
因为要把代码从一台机器移植到另一台机器上,且另一台机器上的GPU的型号GT730与之前的版本GTX 1050Ti的版本不一样,所以很多库都要重新安装并配置,并不能像单纯的opencv代码测试一样,只要把相应的.dll库和.exe文件拷贝到另一台电脑上即可。而现在配置了新的GPU硬件,所以软件也要跟着配对起来。所以,在之前经验的基础上,断然装了同样的vs的版本,cuda的版本和opencv的版本,只是配置方式有点区别。下面着重介绍几个库的安装:
1、vs2015的安装与环境配置
2、CUDA9.1的安装与环境配置
3、cmake的下载与安装
4、opencv2.4.13的安装与环境配置
二|vs2015的安装与环境配置
1、准备好vs2015的安装包,这里请自行下载。
2、win8补丁安装。
补丁1:KB2999226
开始下载了一个不正确的安装包,导致以下错误:
dism.exe /Online /Add-Package /PackagePath:\update\Windows8-RT-KB2999226-x64.cab
部署映像服务和管理工具
版本:6.3.9600.17031
映像版本:6.3.9600.17031
正在处理1(共1)-正在添加程序包Package_for_KB2999226~31bf3856ad364e35~amd64~6.2.1.9
错误:0x800f081e
指定的程序包不适用于此映像。
仔细分析上述错误,发现包不对,于是在官网下载最新的安装包,下载地址:https://www.microsoft.com/en-us/download/confirmation.aspx?id=49081。然后执行以下2句即可:
1 expand –F:* D:\update\Windows8.1-KB2999226-x64.msu D:\update\
2 dism.exe /online /Add-Package /PackagePath:D:\update\Windows8.1-KB2999226-x64.cab
以上标红的是文件路径名,根据自己的实际情况来。第一个步骤主要是解压缩,会有4个文件。第二个步骤主要是安装。
错误2:在安装vs的时候总是停留在一个画面正在重试microsoft .net framework 4.6
解决办法是手动下载安装,下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=49978。双击即可进行安装。
错误3:提示team explorer for microsoft visual studio 2015,安装时发生严重错误
Microsoft Nuget-visual studio 2015
打包失败
Microsoft visual studio Connected Services
打包失败
Azure AD Authentication Connected services
打包失败
Microsoft Azure Mobile Services Connected Service
打包失败
Microsofr Azure Storage Connected Service
打包失败
Microsoft.VisualStudio.Office365
打包失败
原因是之前安装的vs没有正确卸载,在控制面板的程序和功能进行卸载,要卸载干净,再重新进行安装即可。
3、安装vs2015
选择自定义安装。安装时间长短视机器性能而定。
4、环境配置
添加系统的环境变量,右键计算机->属性->高级系统设置->系统属性->高级->环境变量,在环境变量的系统变量Path中添加vs的环境,如下:D:\vs\Common7\IDE;D:\vs\VC\bin。注意,一定要添加环境变量,到后面opencv会根据环境变量生成相应的dll和lib。
二|CUDA9.1的安装与环境配置
1、下载cuda9.1
下载地址:https://developer.nvidia.com/cuda-toolkit-archive。
2、双击安装,安装位置选择默认。
3、环境配置
(1)系统环境变量配置,在Path中添加:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\libnvvp
(2)在系统变量中添加:
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.1
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64
注意,上述配置很关键,否则后面编译opencv会出错。
4、测试
cmd进入C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin,执行nvcc -V,若出现cuda的版本信息,则表示安装成功。
三|cmake的下载与安装
cmake主要用于源码编译oepncv。
1、cmake的下载
下载地址:https://github.com/Kitware/CMake/releases/tag/v3.11.0。其他网站的压根下载不下来,只能下载这个github上的。
包名为:cmake-3.11.0-win64-x64.zip
2、cmake安装
四|opencv2.4.13的安装与环境配置
1、下载opencv2.4.13的安装包。
2、打开cmake用于安装opencv2.4.13。
(1)在此之前,一定要先修改有关文件,否则会出错。参考博客:https://blog.csdn.net/u014613745/article/details/78310916,按照上述博客进行修改,并把文件OpenCVDetectCUDA.cmake的计算能力改成自己显卡的计算能力值,我的是3.0 3.5。
(2)在generate页面,同样需将显卡的计算能力改成相应的显卡计算能力值。
(3)一定要选择WITH_CUDA。
一般按照上述的进行配置后,不会有问题了,即能正确编译opencv了。
如果出现找不到文件或遇到无法解析的外部符号,一般都是环境配置的问题,按照上述方案即可解决。错误提示如下:
错误 |
LNK1104 |
无法打开文件“..\..\lib\Debug\opencv_superres249d.lib” |
错误 |
LNK2019 |
无法解析的外部符号 __cudaRegisterLinkedBinary_64_tmpxft_000007cc_00000000_12_matrix_operations_compute_37_cpp1_ii_9d0d10b8,该符号在函数 "void __cdecl __sti____cudaRegisterAll(void)" (?__sti____cudaRegisterAll@@YAXXZ) 中被引用 |
以上是我的经验之谈,望能给人启发和节省时间。