本文主要记录了使用 CUDA 8.0,Visual Studio 2015,Win10 来编译 OpenCV 4.0.1 的步骤。
安装流程
[1]. 安装好 CUDA 8.0. 各种路径添加到环境变量。
[2]. 下载 Opencv 源码到
<OpenCV_DIR>及 对应版本的 opencv_contrib 到<OpenCV_CONTRIB_DIR>.
[3]. Cmake 生成 VS solution。
3.1 打开 cmake. 在where is the source code中填入<OpenCV_DIR>, 在Where to build the binaries中 填入<OpenCV_DIR/build>。
3.2 点击 configure, 选择Visual Studio 14 2015 Win64. (一定要选带有 Win 64 字样的,否则会出错)
3.3 点击 Finish。会进行 Configure。中途可能会跳出红色错误,这是由于下载 ffmpeg, ippicv, data, xfeatures2d 相关的文件失败造成的。报错信息里会提示查看 log 文件,打开 log 文件后,根据信息,手动到网址下去下载 dll, zip, cmake 等文件,下载好后,以<MD码>-<name>.<ext>的方式命名,放在<OpenCV_DIR/.cache>下的相关路径中。重新点击 configure.
3.4 勾选中复选框BUILD_opencv_world,WITH_CUDA,OPENCV_ENABLE_NONFREE. 将<OpenCV_CONTRIB_DIR/modules>路径添加到OPENCV_EXTRA_MODULES_PATH中,再次点击 Configure.
3.5 勾选CUDA_FAST_MATH, 点击 Configure. 屏幕上应该一片白,没有红色信息.
3.5 点击 Generate 以生成 sln. 此过程不应报错。
[4]. VS 编译 Opencv.sln
4.1<OpenCV_DIR/build>下打开 OpenCV.sln, 点击 生成 -> 配置管理器,选择Release,x64.
4.2 将color_detail.hpp的96-127行的const替换为constexpr. 否则会出现error : dynamic initialization is not supported for a __constant__ variable的错误. 来源1 来源2
4.3 生成ALL_BUILD. (主要关注 opencv_world 工程,此工程生成成功即可,实际过程中出现了 opencv_perf_gapi 和 opencv_test_gapi 工程报错的问题,貌似对我们的项目没有影响。)
4.4 成功生成ALL_BUILD后 (生成了 opencv_world401.lib 和 opencv_world401.dll),右键INSTALL->仅用于项目->仅生成INSTALL.
4.5 在<OpenCV_DIR/install>下是最后得到的 lib, dll,头文件等。
参考文档
【OpenCV】opencv4.0.1+opencv_contrib4.0.1+VS2015的编译