vs2015--cuda8.0--cmake3.17编译opencv4.0.0遇到的两个bug

环境:

vs2015x64

cuda8.0

opencv4.0.0

opencv-contrib4.0.0

cmake3.17

bug1:  模块cvv中找不到 标识符: FILTER_SCHARR 

解决办法:1. 分析: FILTER_SCHARR 是在opencv模块imgproc.hpp中定义的一个枚举数,按理说是不可能找不到的

2. 解决办法: 将 出现问题的地方查看,发现已经包含了头文件"opencv2/imgproc.hpp", 于是修改  FILTER_SCHARR  为  cv::FILTER_SCHARR  

有三处。

单独编译,通过。

bug2 : 

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2001 无法解析的外部符号 "__declspec(dllimport) bool cv::__termination" (__imp_?__termination@cv@@3_NA) opencv_cudev D:win10opencv400SourceFulld2015Cuda80modulescudevopencv_cudev_main.obj 1

分析:这是opencv-cudev模块编译失败。此时其它模块都已经便宜ok了。

解决办法:

1.查看cmakelists.txt 发现其只依赖于opencv-core模块

2直接在vs工程中查看其依赖项,添加opencv-core库

3.编译通过。

最后截图:

 

原文地址:https://www.cnblogs.com/leoking01/p/13655638.html