首先说明的是,这个帖子是成功的编译了dll,但是这个dll使用的时候还是很容易出现各种问题的。
发现错误可能是由于系统安装了太多版本的opencv,环境变量的设置混乱,造成dll版本加载不对的问题。
更新:下面这篇文章里面有加速编译的设置办法:但是编译器采用了vs2012,我根据他的所有软件版本换了编译器,以及QT库,需要特别注意的是,这些库的相应操作系统版本32bit 或者64bit版本
QT早期版本下载地址:
下面这个网址能够找到qt的各个版本
下面是教程地址:
2014.10.23
严格根据上文的软件跟库版本是可以编译设置成功的。
Motivation:
,于是我想啊讲
最新的6.5可能是给8系,9系的新卡用的吧,我也不是很清楚,,最后搞完这一套配置终于明白为啥,linux之父最讨厌nvidia了,这程序之间也是乱七八糟的关系兼容不兼容的,官网早期版本的sdk都找不到,哎。。。
vs2010主要有两种模式,分别是debug 和 release。 模式可以通过如图所示的位置选择。需要注意的是,因为先前我们cmake采用的是64位VS10编译器,在这里需要选择编译器x64, 而不是win32, 否则会出错。
整体的过程参考了下面的链接:
安装完成后,在系统环境里面会发现新添加了两个环境变量:(环境变量挨个添加吧,不要怕麻烦)
CUDA_PATH =C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\
CUDA_PATH_V5_0 =C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\
手动配置环境变量。在系统环境变量中新建如下项:
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.0CUDA_LIB_PATH = %CUDA_PATH%\lib\X64CUDA_BIN_PATH = %CUDA_PATH%\binCUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
然后在系统环境变量Path 后添加如下内容:;%CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_LIB_PATH%;%CUDA_SDK_BIN_PATH%;
3. 安装TBB
去 下载tbb41_20130314oss_win.zip解压到某路径
本人D:\tbb41_20130314oss
添加环境变量D:\tbb41_20130314oss\bin\intel64\vc10
编译过程有两点,可能出现:
1.配置的时候别忘了:添加两个路径,尤其是OpenCV的一个lib库不然 编译有的库找不到,编译不成功。
这个库不需要设置!!!(后来发现!!!)
2.整个编译的过程非常的缓慢,并且出现在编译OpenCV_gpu这个模块的时候,出现c4819错误感觉非常影响速度,这个你要回到相应的cuda文件中,另存为unicode格式就好
i7的处理器大概能编译3个小时左右。。。
加速方法,可以缩短到一个小时左右!就是只针对响应的显卡版本进行设置:
由于这样直接生成的解决方案需对不同的GPU架构分别编译,编译时间过长(数小时),建议针对所用显卡进行配置(据称可达原时间六分之一):找到如下两项
清空CUDA_ARCH_PTX,将CUDA_ARCH_BIN中仅保留所需GPU架构,确定所需架构,请查询https://developer.nvidia.com/cuda-gpus重新configure。(建议使用以上方法先编译一边,确定没有错误,再为所有架构重新编译,花了四天的时间得到的教训)
以上是转载的内容,这里要说几个需要注意的地方:
1.本文中采用的是Cmake2.8.8版本,我用过2.8.12就会出现过很多本文中未提到的错误;
3.关于tbb路径下x86和x64版本lib的选择问题:如果你的vs是32位的就选择x86的库,否则选x64的库;
测试代码:
想像力比知识更重要