【视觉SLAM】ORBSLAM3 window下Debug编译遇到Expression: __acrt_first_block == header

本文主要是介绍【视觉SLAM】ORBSLAM3 window下Debug编译遇到Expression: __acrt_first_block == header,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ORBSLAM3 window下Debug编译遇到Expression: __acrt_first_block == header

    • window下编译ORBSLAM3
    • 解决方法 一 (推荐)
    • 解决方法 二
    • 调试运行速度慢的问题
    • vector iterators incompatible错误

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.csdn.net/jszj/article/details/81317471

对opencv进行了修改,添加了接口,对所有vector类传出的参数在使用完后调用此接口来释放内存即可

调试运行速度慢的问题

编译选项修改,开启O2编译
https://blog.csdn.net/m0_37829462/article/details/124747028
Visual Studio开启O2编译优化选项,提示 “/O2”和“/RTC1”命令行选项不兼容 错误
https://blog.csdn.net/qq_52293358/article/details/124440998

vector iterators incompatible错误

修改:

for(vector<KeyFrame*>::const_iterator itKF=mvpLocalKeyFrames.begin(), itEndKF=mvpLocalKeyFrames.end(); itKF!=itEndKF; itKF++)
//改为
forint i=0;i<mvpLocalKeyFrames.size();i++;//再把
KeyFrame* pKF = *itKF;
//变成
KeyFrame* pKF = mvpLocalKeyFrames[i];

https://www.cnblogs.com/jiangym1998/p/13673145.html

最后祝大家的代码一调就通。Alt

这篇关于【视觉SLAM】ORBSLAM3 window下Debug编译遇到Expression: __acrt_first_block == header的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/644069

相关文章

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i

Jackson库进行JSON 序列化时遇到了无限递归(Infinite Recursion)的问题及解决方案

《Jackson库进行JSON序列化时遇到了无限递归(InfiniteRecursion)的问题及解决方案》使用Jackson库进行JSON序列化时遇到了无限递归(InfiniteRecursi... 目录解决方案‌1. 使用 @jsonIgnore 忽略一个方向的引用2. 使用 @JsonManagedR

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

解决JavaWeb-file.isDirectory()遇到的坑问题

《解决JavaWeb-file.isDirectory()遇到的坑问题》JavaWeb开发中,使用`file.isDirectory()`判断路径是否为文件夹时,需要特别注意:该方法只能判断已存在的文... 目录Jahttp://www.chinasem.cnvaWeb-file.isDirectory()遇

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时