- 自己编译的库,库目录为:
D:\Program Files\OpenCV2.3.1\build\my\install\lib
- 32位系统 & VC2008,库目录为:
D:\Program Files\OpenCV2.3.1\build\x86\vc9\lib
- 32位系统 & VC2010,库目录为:
D:\Program Files\OpenCV2.3.1\build\x86\vc10\lib
#include <iostream> #include "opencv2/opencv.hpp" #include "opencv2/gpu/gpu.hpp"

OpenCV2.3在CUDA4.0+VS2008+win7 32bit环境下的配置
- 下载相关文件
-
- 在sourceforge上下载OpenCV2.3相关文件,其中:
-
- OpenCV-2.3.0-win-superpack.exe 包含了源码和已编译好的版本,本教程以superpack为例;
- OpenCV-2.3.0-win-src.zip 只包含源码;
- OpenCV-2.3.0-gpu-support-win32-vs2008.zip 是针对OpenCV-2.3.0-win-superpack.exe 对GPU支持的补充包,如果想直接使用superpack中已编译好的版本且需要CUDA支持,需要下载此包。
- 运行OpenCV-2.3.0-win-superpack.exe,得到OpenCV2.3文件夹,其中build问价家为已编译好版本,opencv文件夹为源码;
- 源码编译(使用superpack中已编译好的版本可跳过此步骤)
-
- 下载并安装CMake. http://www.cmake.org/
- 运行CMake (cmake-gui)(我使用的是CMake2.8.7,各版本界面安排可能稍许不同),填写源码位置,及build输出位置:PIC1
- 点击下方 configure 按钮,选择编译器:PIC2 点击Finish,等待configure完毕;
- configure完毕后,配置build选项:PIC3 需要CUDA4.0需要注意 勾选WITH_CUDA: PIC4 他默认,或根据自己需要配置即可;
- 配置完毕,点击Generate生成build,在第二步中填入的build输出文件夹下会生成一个OpenCV project,运行OpenCV.sln,生成debug、release解决方案,等待生成完毕;
- 生成完毕后,在bin和lib文件夹下会生成debug和release的DLL,EXE,LIB,至此,源码编译步骤完毕。
- 配置OpenCV2.3
-
- 建立OpenCV23文件夹,以D:\OpenCV23 为例,将解压superpack得到的build问价夹拷贝到该目录下;
- 若是自行编译,将2-6中的debug和release 的DLL和EXE覆盖D:\OpenCV23\build\x86\vc9\bin;LIB覆盖D:\OpenCV23\build\x86\vc9\lib;若是使用superpack已编译好版本,将OpenCV-2.3.0-gpu-support-win32-vs2008.zip中的DLL和LIB分别加入上面两个目录替换同名文件;
- 将 D:\OpenCV23\build\x86\vc9\bin 加入到PATH变量;
- 在VS中 工具->选项->VC++目录中,包含文件添加:D:\OpenCV23\build\include\opencv
D:\OpenCV23\build\include
库文件添加:D:\OpenCV23\build\x86\vc9\lib
- 在建立的项目中,需要附加依赖项:DEBUG:D:\OpenCV23\build\x86\vc9\lib\opencv_core230d.lib
D:\OpenCV23\build\x86\vc9\lib\opencv_highgui230d.lib
D:\OpenCV23\build\x86\vc9\lib\opencv_video230d.lib
D:\OpenCV23\build\x86\vc9\lib\opencv_ml230d.lib
D:\OpenCV23\build\x86\vc9\lib\opencv_legacy230d.lib
D:\OpenCV23\build\x86\vc9\lib\opencv_imgproc230d.lib
RELEASE:
D:\OpenCV23\build\x86\vc9\lib\opencv_core230.lib
D:\OpenCV23\build\x86\vc9\lib\opencv_highgui230.lib
D:\OpenCV23\build\x86\vc9\lib\opencv_video230.lib
D:\OpenCV23\build\x86\vc9\lib\opencv_ml230.lib
D:\OpenCV23\build\x86\vc9\lib\opencv_legacy230.lib
D:\OpenCV23\build\x86\vc9\lib\opencv_imgproc230.lib
- 至此,OpenCV2.3在CUDA4.0+VS2008+win7 32bit环境下的配置完毕。
- 遇到的问题
7rack在编译OpenCV2.3和CUDA4.0中遇到了诸如:
1> D:\OpenCV2.3\build\include\opencv2/core/operations.hpp(1265): error: expected a “>”
1>D:\OpenCV2.3\build\include\opencv2/flann/index_testing.h(144): warning: variable “p1″ was set but never used
1>D:\OpenCV2.3\build\include\opencv2/flann/index_testing.h(221): warning: variable “p1″ was set but never used
1>D:\OpenCV2.3\build\include\opencv2/flann/autotuned_index.h(359): error: this operator is not allowed in a template argument expression
1>D:\OpenCV2.3\build\include\opencv2/flann/autotuned_index.h(359): error: expression must have a constant value
1>D:\OpenCV2.3\build\include\opencv2/flann/autotuned_index.h(359): error: expected a “>”
1>D:\OpenCV2.3\build\include\opencv2/flann/autotuned_index.h(394): error: this operator is not allowed in a template argument expression
1>D:\OpenCV2.3\build\include\opencv2/flann/autotuned_index.h(394): error: expression must have a constant value
1>D:\OpenCV2.3\build\include\opencv2/flann/autotuned_index.h(394): error: expected a “>”
1>D:\OpenCV2.3\build\include\opencv2/flann/autotuned_index.h(432): error: this operator is not allowed in a template argument expression
1>D:\OpenCV2.3\build\include\opencv2/flann/autotuned_index.h(432): error: expression must have a constant value
1>D:\OpenCV2.3\build\include\opencv2/flann/autotuned_index.h(432): error: expected a “>”
1>D:\OpenCV2.3\build\include\opencv2/flann/autotuned_index.h(464): error: this operator is not allowed in a template argument expression
1>D:\OpenCV2.3\build\include\opencv2/flann/autotuned_index.h(464): error: expression must have a constant value
1>D:\OpenCV2.3\build\include\opencv2/flann/autotuned_index.h(464): error: expected a “>”
1>D:\OpenCV2.3\build\include\opencv2/flann/autotuned_index.h(519): error: expected a “>”
1>D:\OpenCV2.3\build\include\opencv2/flann/autotuned_index.h(526): error: expected a “>”
的OpenCV2.3头文件的错误,这nvcc编译器的编译方法引起的错误,解决方法是,给每一个变量加上()括号(以上面这个operations.hpp(1265)为例):
operations.hpp 第1265行:
CV_DbgAssert( this->idx < cn ); 改成: CV_DbgAssert( (this->idx) < (cn) );
版权声明:对于本博客所有原创文章,允许个人、教育和非商业目的使用,但务必保证文章的完整性且不作任何修改地以超链接形式注明原始作者、出处及本声明。
一、生成项目文件
图1 配置源代码和生成目录
图2 生成项目类型选择
完成以上操作后勾选“BUILD_EXAMPLES”、“CUDA_BUILD_CBUIN”、“CUDA_VERBOSE_BUILD”、“WITH_TBB”和“WITH_CUBLAS” 、“WITH_CUDA”,注意这里千万不要勾选“CUDA_BUILD_EMULATION”选项,不然会报错的,如下所示。
- CMake
Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindCUDA.cmake:616 (message): -
CUDA_BUILD_EMULATION is not supported in version 3.1 and onwards. You must -
disable it to proceed. You have version 4.2.
- Other
third-party libraries: -
Use IPP: NO -
Use TBB: YES (ver 4.0 interface 6004) -
Use Cuda: YES (ver 4.2) -
Use Eigen: NO -
- NVIDIA
CUDA: (ver 4.2) -
Use CUFFT: YES -
Use CUBLAS: YES -
NVIDIA GPU arch: 11 12 13 20 21 -
NVIDIA PTX archs: 11 12 13 20 21 -
NVIDIA GPU features: 11 12 13 20 20 20
图3 “Generating done”
图4 成功生成项目文件
二、编译生成目标文件
三、整理目录
四、配置并测试OpenCV-2.4.0函数库
参考链接:http://blog.cuvilib.com/2011/03/22/how-to-build-opencv-2-2-with-gpu-cuda-on-windows-7/