eigen error
/usr/include/eigen3/Eigen/src/Core/DenseStorage.h:128: Eigen::internal::plain_array<T, Size, MatrixOrArrayOptions, 32>::plain_array() [with T = double; int Size = 16; int MatrixOrArrayOptions = 0]: Assertion `(internal::UIntPtr(eigen_unaligned_array_assert_workaround_gcc47(array)) & (31)) == 0 && "this assertion is explained here: " "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" " **** READ THIS WEB PAGE !!! ****"' failed.
服了这个库
编译的时候没有报错,运行的时候报错,出错的地方是结构体里面有定义Eigen的变量,按照错误提示里面的链接修改了也不行
别的地方也有用这个库和结构体的,对比一下发现Cmakelist.txt有些不同,把下面这几行注释掉就好了
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O3")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O3")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -march=native")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=native")
g2o 优化时 程序Segmentation fault
解决了上面的问题,orbslam运行时突然中止在位姿优化的地方了Optimizer.cc。很是苦恼。
gdb调试发现程序中止的地方是在g2o优化函数的部分
最后找到原因是我在使用orbslam3的时候调用了orbslam2对应的libg2o.so库
改成orbslam3里面的g2o库就行了