ORBSLAM3 window下Debug编译遇到Expression: __acrt_first_block == header
window下编译ORBSLAM3
github:https://github.com/lydieusang/orbslam3-windows
配置了Release版本没有问题;想调试程序的时候发现Debug版本会报错.
按照查找资料的分析,是因为exe中变量的内存在调用的库中释放了,导致出错,解决方法目前查到了两种

解决方法 一 (推荐)
https://www.cnblogs.com/CGwolke/p/7851994.html
直接对相应的内存进行预分配:
ORBExtractor.cc中作如下修改
//vector<cv::KeyPoint> vKeysCell;修改如下
vector<cv::KeyPoint> vKeysCell(10000);
FAST(mvImagePyramid[level].rowRange(iniY,maxY).colRange(iniX,maxX),
vKeysCell,iniThFAST,true);
解决方法 二
https://blog.youkuaiyun.com/jszj/article/details/81317471
对opencv进行了修改,添加了接口,对所有vector类传出的参数在使用完后调用此接口来释放内存即可
调试运行速度慢的问题
编译选项修改,开启O2编译
https://blog.youkuaiyun.com/m0_37829462/article/details/124747028
Visual Studio开启O2编译优化选项,提示 “/O2”和“/RTC1”命令行选项不兼容 错误
https://blog.youkuaiyun.com/qq_52293358/article/details/124440998
vector iterators incompatible错误
修改:
for(vector<KeyFrame*>::const_iterator itKF=mvpLocalKeyFrames.begin(), itEndKF=mvpLocalKeyFrames.end(); itKF!=itEndKF; itKF++)
//改为
for(int i=0;i<mvpLocalKeyFrames.size();i++);
//再把
KeyFrame* pKF = *itKF;
//变成
KeyFrame* pKF = mvpLocalKeyFrames[i];
https://www.cnblogs.com/jiangym1998/p/13673145.html
最后祝大家的代码一调就通。
17万+

被折叠的 条评论
为什么被折叠?



