问题描述
在新的电脑(ubuntu16.04)上,上官网http://www.ceres-solver.org/installation.html安装了ceres,跑之前自己的代码时,发现类似下面的错误,一大堆,内存也会爆炸:
/usr/local/include/ceres/internal/parameter_dims.h:85:11: error: ‘integer_sequence’ is not a member of ‘std’
分析
我的包用了ceres,根据错误认为ceres有问题,发现现在ceres的版本是2.0.0而之前的是1.几的,所以想回退。
下载ceres 1.14的压缩文件,按照流程进行编译报错:
/home/seivl/Download/ceres-solver-1.14.0/internal/ceres/gtest/gtest.h:10445:35: error: variable or field ‘it’ declared void
for (typename C::const_iterator it = container.begin();
^
internal/ceres/CMakeFiles/residual_block_test.dir/build.make:81: recipe for target 'internal/ceres/CMakeFiles/residual_block_test.dir/residual_block_test.cc.o' failed
估计是eigen的版本也要回退(ceres2.0.0需要3.3以后版本,我之前电脑是3.2.9)所以我得恢复到这样的状态:
eigen3.2.9—ceres1.14–my pakage

在Ubuntu 16.04上,因升级Ceres导致代码运行错误,怀疑是版本问题。尝试回退Ceres到1.14.0,同时将Eigen回退到3.2.9。卸载并删除现有库,重新下载并编译旧版本,但过程中遇到编译错误。解决方案包括下载对应版本的eigen和ceres,按照指定步骤进行安装和编译。
最低0.47元/天 解锁文章
587





