ubuntu1604安裝ceres庫


提前安裝engin3

編譯ceres時:error: ‘integer_sequence’ is not a member of ‘std‘錯誤

https://blog.csdn.net/qq_41586768/article/details/107541917

視覺slam十四講第六章中,按照上安裝的ceres庫版本,以及網上大多數教程安裝的版本都會和eigen3(3.3.7)有沖突,編譯時會報如下錯誤:

 

 

/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<class Seq> 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...>> {
                                                 ^
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:70:16: error: ‘integer_sequence’ is not a member of ‘std’
 struct SumImpl<std::integer_sequence<T, N1, N2, Ns...>> {
                ^
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:70:16: error: ‘integer_sequence’ is not a member of ‘std’
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:70:51: error: wrong number of template arguments (4, should be 1)
 struct SumImpl<std::integer_sequence<T, N1, N2, Ns...>> {
                                                   ^
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:60:8: note: provided for ‘template<class Seq> struct ceres::internal::SumImpl’
 struct SumImpl;
        ^
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:70:54: error: expected unqualified-id before ‘>’ token
 struct SumImpl<std::integer_sequence<T, N1, N2, Ns...>> {
                                                      ^
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:77:16: error: ‘integer_sequence’ is not a member of ‘std’
 struct SumImpl<std::integer_sequence<T, N1, N2, N3, N4, Ns...>> {
                ^
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:77:16: error: ‘integer_sequence’ is not a member of ‘std’
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:77:59: error: wrong number of template arguments (6, should be 1)
 struct SumImpl<std::integer_sequence<T, N1, N2, N3, N4, Ns...>> {
                                                           ^
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:60:8: note: provided for ‘template<class Seq> struct ceres::internal::SumImpl’
 struct SumImpl;
        ^
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:77:62: error: expected unqualified-id before ‘>’ token
 struct SumImpl<std::integer_sequence<T, N1, N2, N3, N4, Ns...>> {
                                                              ^
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:84:16: error: ‘integer_sequence’ is not a member of ‘std’
 struct SumImpl<std::integer_sequence<T, N>> {
                ^
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:84:16: error: ‘integer_sequence’ is not a member of ‘std’
/usr/local/include/ceres/internal/integer_sequence_algorithm.h:84:41: error: wrong number of template arguments (2, should be 1)
 struct SumImpl<std::integer_sequence<T, N>> {

 

這里換成1.14.0版本的ceres問題得以解決;
1.先刪除之前的ceres-solver:

sudo rm -r /usr/local/lib/cmake/Ceres sudo rm -rf /usr/local/include/ceres /usr/local/lib/libceres.a sudo rm -r /usr/local/share/Ceres

2.下載ceres-solver-1.14.0

wget ceres-solver.org/ceres-solver-1.14.0.tar.gz

3.解壓

tar xvf ceres-solver-1.14.0.tar.gz

4.編譯

cd ceres-solver-1.14.0 mkdir build cd build cmake .. make -j4 make test

5.安裝

sudo make install

6.編譯ceres_curve_fiiting
cd到ceres_curve_fiiting文件夾下

 mkdir build cd build cmake .. make ./curve_fitting

成功編譯!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM