折腾贼久终于搞好VS中开发Cuda与OpenCV了。。。
环境
- OpenCV 3.4
- Cuda 10.2
- Visual Studio 2017
步骤
第一步 创建项目
创建VC++控制台应用,不要选NVIDIA项目。
第二步 设置CUDA编译
右击项目->生成依赖项->自定义,在弹出的对话框勾上CUDA,没有的话说明CUDA没装好。
第三步 设置引用目录和库目录
右击项目->属性,注意配置
和平台
选择合适的选项,这里我选择所有配置
和x64
,表示Debug
和Release
模式都是这个配置而且生成64位程序。
在VC++目录
中设置包含目录
和库目录
,包含目录有:
-
${OpenCV构建目录}\install\include
-
${CUDA安装目录}\include
图中由于需要我加上了Eigen,可以不加的。库目录有:
-
${OpenCV构建目录}\install\x64\vc15\lib
-
${CUDA安装目录}\lib\x64
这里vc15是根据visual studio版本定的,最好去看看这个目录是否存在。
第四步 设置库
设置链接器->输入
的附加依赖项
,填入一堆依赖。
这些依赖怎么来的呢?用cmd输入以下命令:
1 | cd ${CUDA安装目录}\lib\x64 |
补充说明:这里ls和cat的命令是调用了msys的程序,Windows默认是没有这些命令的,msys是一个模拟Linux环境的工具。
输出的内容中除去a.txt就是我们要填进去的依赖啦。或者用ls | cat
也行,这样就不用手动删a.txt了。直接用ls的话文件名不分行,得配合cat命令使用。
除了上面这些,还有${OpenCV构建目录}\install\x64\vc15\lib
这个,操作一样的。
第五步 创建cu文件
右击源文件->添加->新建项,这次我们选择NVIDIA CUDA C/C++ File就行。
现在基本能够运行了。
测试
以下简单提供测试的代码,功能是反转图片颜色:
1 | /* 文件:test.cu */ |
1 | /* 文件:main.cpp */ |
运行结果:
参考
[1] 配置OpenCV+CUDA https://blog.csdn.net/stjuliet/article/details/83957512
[2] OpenCV+CUDA混合编译 https://www.cnblogs.com/br170525/p/8331640.html
[3] 动态库与静态库链接 https://blog.csdn.net/weixin_39212021/article/details/78884830
[4] CMake联合编译 https://blog.csdn.net/fb_help/article/details/79330815
[5] NVCC使用 https://blog.csdn.net/bendanban/article/details/8518382