#记录安装cartographer时遇到的bug
https://blog.csdn.net/weixin_43262513/article/details/88256762
即:
https://www.cnblogs.com/hitcm/p/5939507.html
安装ceres-solver
make -j4
报错:
In file included from /home/tonglu/pkg/ceres-solver-1.11.0/internal/ceres/schur_eliminator_impl.h:64:0,
from /home/tonglu/pkg/ceres-solver-1.11.0/internal/ceres/generated/schur_eliminator_2_2_2.cc:48:
/home/tonglu/pkg/ceres-solver-1.11.0/internal/ceres/schur_eliminator.h: In member function ‘void ceres::internal::SchurEliminator<kRowBlockSize, kEBlockSize, kFBlockSize>::Init(int, const ceres::internal::CompressedRowBlockStructure*) [with int kRowBlockSize = 2; int kEBlockSize = 2; int kFBlockSize = 2]’:
/home/tonglu/pkg/ceres-solver-1.11.0/internal/ceres/schur_eliminator.h:267:10: error: ‘<anonymous>.ceres::internal::SchurEliminator<2, 2, 2>::Chunk::start’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
struct Chunk {
^~~~~
cc1plus: some warnings being treated as errors
internal/ceres/CMakeFiles/ceres.dir/build.make:2558: recipe for target 'internal/ceres/CMakeFiles/ceres.dir/generated/schur_eliminator_2_2_2.cc.o' failed
make[2]: *** [internal/ceres/CMakeFiles/ceres.dir/generated/schur_eliminator_2_2_2.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /home/tonglu/pkg/ceres-solver-1.11.0/internal/ceres/schur_eliminator_impl.h:64:0,
from /home/tonglu/pkg/ceres-solver-1.11.0/internal/ceres/generated/schur_eliminator_2_2_3.cc:48:
/home/tonglu/pkg/ceres-solver-1.11.0/internal/ceres/schur_eliminator.h: In member function ‘void ceres::internal::SchurEliminator<kRowBlockSize, kEBlockSize, kFBlockSize>::Init(int, const ceres::internal::CompressedRowBlockStructure*) [with int kRowBlockSize = 2; int kEBlockSize = 2; int kFBlockSize = 3]’:
/home/tonglu/pkg/ceres-solver-1.11.0/internal/ceres/schur_eliminator.h:267:10: error: ‘<anonymous>.ceres::internal::SchurEliminator<2, 2, 3>::Chunk::start’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
struct Chunk {
^~~~~
In file included from /home/tonglu/pkg/ceres-solver-1.11.0/internal/ceres/schur_eliminator_impl.h:64:0,
from /home/tonglu/pkg/ceres-solver-1.11.0/internal/ceres/generated/schur_eliminator_2_2_4.cc:48:
/home/tonglu/pkg/ceres-solver-1.11.0/internal/ceres/schur_eliminator.h: In member function ‘void ceres::internal::SchurEliminator<kRowBlockSize, kEBlockSize, kFBlockSize>::Init(int, const ceres::internal::CompressedRowBlockStructure*) [with int kRowBlockSize = 2; int kEBlockSize = 2; int kFBlockSize = 4]’:
/home/tonglu/pkg/ceres-solver-1.11.0/internal/ceres/schur_eliminator.h:267:10: error: ‘<anonymous>.ceres::internal::SchurEliminator<2, 2, 4>::Chunk::start’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
struct Chunk {
^~~~~
cc1plus: some warnings being treated as errors
internal/ceres/CMakeFiles/ceres.dir/build.make:2582: recipe for target 'internal/ceres/CMakeFiles/ceres.dir/generated/schur_eliminator_2_2_3.cc.o' failed
make[2]: *** [internal/ceres/CMakeFiles/ceres.dir/generated/schur_eliminator_2_2_3.cc.o] Error 1
cc1plus: some warnings being treated as errors
internal/ceres/CMakeFiles/ceres.dir/build.make:2606: recipe for target 'internal/ceres/CMakeFiles/ceres.dir/generated/schur_eliminator_2_2_4.cc.o' failed
make[2]: *** [internal/ceres/CMakeFiles/ceres.dir/generated/schur_eliminator_2_2_4.cc.o] Error 1
In file included from /home/tonglu/pkg/ceres-solver-1.11.0/internal/ceres/schur_eliminator_impl.h:64:0,
from /home/tonglu/pkg/ceres-solver-1.11.0/internal/ceres/generated/schur_eliminator_2_2_d.cc:48:
/home/tonglu/pkg/ceres-solver-1.11.0/internal/ceres/schur_eliminator.h: In member function ‘void ceres::internal::SchurEliminator<kRowBlockSize, kEBlockSize, kFBlockSize>::Init(int, const ceres::internal::CompressedRowBlockStructure*) [with int kRowBlockSize = 2; int kEBlockSize = 2; int kFBlockSize = -1]’:
/home/tonglu/pkg/ceres-solver-1.11.0/internal/ceres/schur_eliminator.h:267:10: error: ‘<anonymous>.ceres::internal::SchurEliminator<2, 2, -1>::Chunk::start’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
struct Chunk {
^~~~~
cc1plus: some warnings being treated as errors
internal/ceres/CMakeFiles/ceres.dir/build.make:2630: recipe for target 'internal/ceres/CMakeFiles/ceres.dir/generated/schur_eliminator_2_2_d.cc.o' failed
make[2]: *** [internal/ceres/CMakeFiles/ceres.dir/generated/schur_eliminator_2_2_d.cc.o] Error 1
CMakeFiles/Makefile2:1618: recipe for target 'internal/ceres/CMakeFiles/ceres.dir/all' failed
make[1]: *** [internal/ceres/CMakeFiles/ceres.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
I can’t solve it.
虽然这个bug没有解决,但是之后我找到了安装cartographer的解决方法:
https://blog.csdn.net/weixin_43731435/article/details/116673765
避免了这些奇奇怪怪的编译bug