【无标题】

解决ORBSALM中g2o优化之optimizer.optimize()闪退

1.原因

g2o库的cmakelist文件中,设置语句 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -O3 -mtune=native ") 与Eigen库冲突,导致g2o函数库执行optimizer.optimize()函数时,程序段错误(编译阶段能通过)

2.解决办法

解决办法是:将orbslam与及 g2o 的cmakelists中语句SET(CMAKE_CXX_FLAGS " C M A K E C X X F L A G S − s t d = c + + 0 x − O 3 − m t u n e = n a t i v e " ) 的 − m a r c h = n a t i v e 都给删掉,在将 g 2 o 再次编译后运行。目前, o r b s l a m 工程中 S E T ( C M A K E C X X F L A G S " {CMAKE_CXX_FLAGS} -std=c++0x -O3 -mtune=native ")的-march=native都给删掉,在将g2o再次编译后运行。 目前,orbslam工程中SET(CMAKE_CXX_FLAGS " CMAKECXXFLAGSstd=c++0xO3mtune=native")march=native都给删掉,在将g2o再次编译后运行。目前,orbslam工程中SET(CMAKECXXFLAGS"{CMAKE_CXX_FLAGS} -std=c++0x -O3 -mtune=native ")语句改成了SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -O3 -mtune=native ")也是可以的。

你可能感兴趣的:(c++,ubuntu)