hku-mars / loam_livox

A robust LiDAR Odometry and Mapping (LOAM) package for Livox-LiDAR
GNU General Public License v2.0
1.43k stars 435 forks source link

ceres库的问题 #81

Open SakuraMemoryKnight opened 3 years ago

SakuraMemoryKnight commented 3 years ago

编译时有很多如下的错误: /usr/local/include/ceres/internal/integer_sequence_algorithm.h:64:16: error: ‘integer_sequence’ is not a member of ‘std’ struct SumImpl<std::integer_sequence<T, N, Ns...>> { ^ /usr/local/include/ceres/internal/integer_sequence_algorithm.h:64:16: error: ‘integer_sequence’ is not a member of ‘std’ /usr/local/include/ceres/internal/integer_sequence_algorithm.h:64:46: error: wrong number of template arguments (3, should be 1) struct SumImpl<std::integer_sequence<T, N, Ns...>> { ^ /usr/local/include/ceres/internal/integer_sequence_algorithm.h:60:8: note: provided for ‘template struct ceres::internal::SumImpl’ struct SumImpl; ^ /usr/local/include/ceres/internal/integer_sequence_algorithm.h:64:49: error: expected unqualified-id before ‘>’ token struct SumImpl<std::integer_sequence<T, N, Ns...>> {

是ceres库版本不对的问题吗?

LoveLH commented 3 years ago

修改loam_livox的cmake配置文件可以解决,估计你用的是和我一样的cmake版本 /src/loam_livox/CMakeLists.txt

# set(CMAKE_CXX_FLAGS "-std=c++14")
set(CMAKE_CXX_STANDARD 14)

参考:使用ceres编译报错 error: ‘integer_sequence’ is not a member of ‘std‘

另外,你还可能会跟我一样遇到eigen3重复安装的问题,因为安装ros的时候会以来eigen3,会使用apt-get安装,但是我自己用make install装了另一个版本,就需要删除一个。 编译g2o提示错误 error: ‘ScalarBinaryOpTraits’ is not a class template 可以参考这个链接解决