注释掉g2o源码Cmakelists中的
#IF(BUILD_WITH_MARCH_NATIVE AND NOT "${ARCH}" MATCHES "arm" AND "${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
#SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=native")
# SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -march=native")
#ENDIF()
部分,并使用的的代码中设置set( CMAKE_CXX_FLAGS "-std=c++11 -O3" ),
注意不能是set( CMAKE_CXX_FLAGS "-std=c++11 -march=native -O3" ),-march=native
应该是一个指定目标程序的cpu架构来进行程序优化。native就是相当于自检测cpu。总之-march是gcc优化选项。貌似只要加了-march=native,所有的节点与边的析构函数都会报错。