如何使用调试标志构建 OpenCV
Posted
技术标签:
【中文标题】如何使用调试标志构建 OpenCV【英文标题】:How to build OpenCV with Debug flags 【发布时间】:2020-08-27 23:48:41 【问题描述】:我目前正在尝试在 OpenCV 中调试棋盘角检测算法。为此,我已取消注释
#define DEBUG_CHESSBOARD
下面的源代码行。
https://github.com/opencv/opencv/blob/master/modules/calib3d/src/calibinit.cpp
然后我尝试在 Windows 上使用 CMake GUI 进行构建。当我这样做时,我一直遇到错误“无法打开包含文件:'opencv2/highgui.hpp”,这显然是由于上面链接的源代码中的第 89 行(也如下所示)。
#ifdef DEBUG_CHESSBOARD
#include "opencv2/highgui.hpp"
我到处找,不知道如何解决这个问题。文件中有一条相关的评论说
// Requires CMake flag: DEBUG_opencv_calib3d=ON
#define DEBUG_CHESSBOARD
但我不知道如何打开这个标志。
如果有人对此有任何想法,我将不胜感激!非常感谢!
【问题讨论】:
我一直遇到错误“无法打开包含文件您是否设置了编译器包含路径? 我看到模块在这里:github.com/opencv/opencv/tree/master/modules/highgui/include/… 【参考方案1】:通过修改opencv-master/modules/calib3d/CMakeLists.txt中的CMakeLists.txt解决。
您必须将“list(APPEND debug_modules opencv_highgui)”行移出 if 语句。我确信有一种方法可以直接设置 DEBUG_opencv_calib3d,但我还没有弄清楚,但这个 hacky 解决方案有效。
【讨论】:
以上是关于如何使用调试标志构建 OpenCV的主要内容,如果未能解决你的问题,请参考以下文章
将 OpenCV 构建为项目的一部分 - 调试 (F11) 到 OpenCV 库中
使用多线程调试 DLL (/MDd) C 运行时库构建静态 Opencv 库