一、环境配置
- ① 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
