slambook2
slambook2 copied to clipboard
运行ch12 单目稠密建图的程序时出现段错误(核心已转储)
运行如下: read total 202 files. *** loop 1 *** 段错误 (核心已转储) 用gdb调试以后定位如下: #0 0x0000555555559715 in epipolarSearch(cv::Mat const&, cv::Mat const&, Sophus::SE3<double, 0> const&, Eigen::Matrix<double, 2, 1, 0, 2, 1> const&, double const&, double const&, Eigen::Matrix<double, 2, 1, 0, 2, 1>&, Eigen::Matrix<double, 2, 1, 0, 2, 1>&) () #1 0x000055555555afce in update(cv::Mat const&, cv::Mat const&, Sophus::SE3<double, 0> const&, cv::Mat&, cv::Mat&) () #2 0x0000555555558238 in main () 然后我就不知道该如何解决了 小白一枚,求大神指个明路!
我也遇到了,请问您解决了吗
没有解决呢,暂时先放弃了,等后续回头再看看吧,如果你解决了,希望可以分享一下解决方案
------------------ 原始邮件 ------------------ 发件人: "gaoxiang12/slambook2" @.>; 发送时间: 2021年6月30日(星期三) 中午11:23 @.>; @.@.>; 主题: Re: [gaoxiang12/slambook2] 运行ch12 单目稠密建图的程序时出现段错误(核心已转储) (#178)
我也遇到了,请问您解决了吗
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.
锁定问题的根源了
发现了一个奇怪的bug,大家可以试一试: 在update函数里面的nested for-loop把x和y的值打印出来,你会发现outer loop的值会超出范围,所以导致出错
update函数为定义为bool类型,但是没有返回值,可以改为void
我也遇到这个问题,通过这种方式解决了,应该是代码优化问题 https://blog.csdn.net/u012858839/article/details/123850031
上面的问题最终解决了吗? 小白坑求大佬帮忙解决一下,谢谢了。
上面的问题最终解决了吗? 小白坑求大佬帮忙解决一下,谢谢了。
前面的兄弟是对的,把bool改称void就好了
真的也,这个优化到底是什么鬼?把bool改成void真的就ok了,莫名其妙
上面的问题最终解决了吗? 小白坑求大佬帮忙解决一下,谢谢了。
前面的兄弟是对的,把bool改称void就好了
就是因为缺少返回值,加上返回值,或者改为void都可以。 开O3优化后,好像缺少返回值会导致各种奇葩的错误,具体原因不懂。
把CMakeLists.txt中的-O3优化去掉就可以了
不用改代码,cmakelists里debug+ -O0就对了
update函数为定义为bool类型,但是没有返回值,可以改为void
成功解决,感谢
我加上“return true”就可以了
我加上“return true”就可以了
什么都不用更改,直接在相关函数地下加上“return true”就行了,祝好运
运行到最后为什么报这个错啊:
*** loop 201 *** terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::substr: __pos (which is 140) > this->size() (which is 0) 已放弃 (核心已转储)