opencv源码debug方式
迪丽瓦拉
2025-06-01 19:02:46
0

一、环境配置

  •  ① opencv源码编译,获得build/bin/Debug和build/lib
    • bin/Debug中有:opencv_world470d.dll和pdb
    • build/lib中有:opencv_world470d.pdb
    • 但这两个pdb文件大小不一样,内容不一样。
  • ② 自己的工程配置如下:主要是Include包含目录;可执行文件目录bin;lib目录
    • 这里的lib目录不是为了装入opencv_world470d.dll,而是导入pdb
    • 运行时缺opencv_world470d.dll,将bin/Debug下的opencv_world470d.dll复制到exe目录下
    • 主要是需要保证opencv_world470d.dll和opencv_world470d.pdb是一起编译产生的
    • 如果随便复制一个opencv_world470d.dll别的地方编译的,二者不一致就会无法进入源码。
    • pdb中有源码的路径,必须要保证一致!

 

 

 

#include 
#include int main(int argc, char* argv[])
{int m_iWidth = 29440, m_iHeight = 512;cv::Mat m_mask = cv::Mat::zeros(cv::Size(m_iWidth, m_iHeight), CV_8UC1);std::vector> vecZoneDatas;std::vector> m_RoiContours;std::vector tmp;tmp.push_back(cv::Point(1,1));tmp.push_back(cv::Point(100, 1));tmp.push_back(cv::Point(100, 100));tmp.push_back(cv::Point(1, 200));m_RoiContours.push_back(tmp);for (auto var : m_RoiContours){vecZoneDatas.push_back(var);}cv::drawContours(m_mask, vecZoneDatas, -1, cv::Scalar::all(255), -1);return 0;
}


stackoverflow 怎么debug opencv 源码

  •  下载了PdbInspector:https://github.com/Supranaturaler/PdbInspector
    • 打开sln,编译;发现找不到dia2.h
    • 使用everything搜索,找到,然后把源码中的包含路径改为绝对路径。编译成功,得到exe

  • 打开PdbInspector的exe,load加载opencv_world470d.pdb

 

相关内容