安装ceres时报错,这是由于gcc版本问题导致的,gcc版本太低不完全支持c++11,所以安装gcc5再编译就可以了,可以完全支持c++11。我原先gcc版本是4.8,安装了gcc5后解决了问题,具体怎样讲gcc升级可以参考这篇博客:https://kernel.blog.csdn.net/article/details/52871438
In file included from /home/neo/develop_downloads/ceres-solver/internal/ceres/residual_block.cc:41:0:
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/fixed_array.h: In static member function ‘static constexpr bool ceres::internal::FixedArray<T, N, A>::DefaultConstructorIsNonTrivial()’:
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/fixed_array.h:101:13: error: ‘is_trivially_default_constructible’ is not a member of ‘std’
return !std::is_trivially_default_constructible<StorageElement>::value;
^
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/fixed_array.h:101:67: error: expected primary-expression before ‘>’ token
return !std::is_trivially_default_constructible<StorageElement>::value;
^
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/fixed_array.h:101:68: error: ‘::value’ has not been declared
return !std::is_trivially_default_constructible<StorageElement>::value;
^
In file included from /home/neo/develop_downloads/ceres-solver/internal/ceres/local_parameterization.cc:37:0:
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/fixed_array.h: In static member function ‘static constexpr bool ceres::internal::FixedArray<T, N, A>::DefaultConstructorIsNonTrivial()’:
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/fixed_array.h:101:13: error: ‘is_trivially_default_constructible’ is not a member of ‘std’
return !std::is_trivially_default_constructible<StorageElement>::value;
^
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/fixed_array.h:101:67: error: expected primary-expression before ‘>’ token
return !std::is_trivially_default_constructible<StorageElement>::value;
^
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/fixed_array.h:101:68: error: ‘::value’ has not been declared
return !std::is_trivially_default_constructible<StorageElement>::value;
^
In file included from /home/neo/develop_downloads/ceres-solver/include/ceres/internal/numeric_diff.h:44:0,
from /home/neo/develop_downloads/ceres-solver/include/ceres/dynamic_numeric_diff_cost_function.h:44,
from /home/neo/develop_downloads/ceres-solver/include/ceres/gradient_checker.h:42,
from /home/neo/develop_downloads/ceres-solver/internal/ceres/gradient_checker.cc:33:
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/fixed_array.h: In static member function ‘static constexpr bool ceres::internal::FixedArray<T, N, A>::DefaultConstructorIsNonTrivial()’:
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/fixed_array.h:101:13: error: ‘is_trivially_default_constructible’ is not a member of ‘std’
return !std::is_trivially_default_constructible<StorageElement>::value;
^
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/fixed_array.h:101:67: error: expected primary-expression before ‘>’ token
return !std::is_trivially_default_constructible<StorageElement>::value;
^
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/fixed_array.h:101:68: error: ‘::value’ has not been declared
return !std::is_trivially_default_constructible<StorageElement>::value;
^
In file included from /home/neo/develop_downloads/ceres-solver/internal/ceres/problem_impl.cc:52:0:
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/fixed_array.h: In static member function ‘static constexpr bool ceres::internal::FixedArray<T, N, A>::DefaultConstructorIsNonTrivial()’:
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/fixed_array.h:101:13: error: ‘is_trivially_default_constructible’ is not a member of ‘std’
return !std::is_trivially_default_constructible<StorageElement>::value;
^
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/fixed_array.h:101:67: error: expected primary-expression before ‘>’ token
return !std::is_trivially_default_constructible<StorageElement>::value;
^
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/fixed_array.h:101:68: error: ‘::value’ has not been declared
return !std::is_trivially_default_constructible<StorageElement>::value;
^
In file included from /home/neo/develop_downloads/ceres-solver/include/ceres/internal/parameter_dims.h:37:0,
from /home/neo/develop_downloads/ceres-solver/include/ceres/internal/variadic_evaluate.h:42,
from /home/neo/develop_downloads/ceres-solver/include/ceres/internal/numeric_diff.h:45,
from /home/neo/develop_downloads/ceres-solver/include/ceres/dynamic_numeric_diff_cost_function.h:44,
from /home/neo/develop_downloads/ceres-solver/include/ceres/gradient_checker.h:42,
from /home/neo/develop_downloads/ceres-solver/internal/ceres/gradient_checker.cc:33:
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/integer_sequence_algorithm.h: At global scope:
/home/neo/develop_downloads/ceres-solver/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...>> {
^
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/integer_sequence_algorithm.h:64:16: error: ‘integer_sequence’ is not a member of ‘std’
/home/neo/develop_downloads/ceres-solver/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...>> {
^
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/integer_sequence_algorithm.h:60:8: error: provided for ‘template<class Seq> struct ceres::internal::SumImpl’
struct SumImpl;
^
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/integer_sequence_algorithm.h:64:49: error: expected unqualified-id before ‘>’ token
struct SumImpl<std::integer_sequence<T, N, Ns...>> {
^
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/integer_sequence_algorithm.h:71:16: error: ‘integer_sequence’ is not a member of ‘std’
struct SumImpl<std::integer_sequence<T, N1, N2, Ns...>> {
^
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/integer_sequence_algorithm.h:71:16: error: ‘integer_sequence’ is not a member of ‘std’
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/integer_sequence_algorithm.h:71:51: error: wrong number of template arguments (4, should be 1)
struct SumImpl<std::integer_sequence<T, N1, N2, Ns...>> {
^
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/integer_sequence_algorithm.h:60:8: error: provided for ‘template<class Seq> struct ceres::internal::SumImpl’
struct SumImpl;
^
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/integer_sequence_algorithm.h:71:54: error: expected unqualified-id before ‘>’ token
struct SumImpl<std::integer_sequence<T, N1, N2, Ns...>> {
^
/home/neo/develop_downloads/ceres-solver/include/ceres/internal/integer_sequence_algorithm.h:78:16: error: ‘integer_sequence’ is not a member of ‘std’
struct SumImpl<std::integer_sequence<T, N1, N2, N3, N4, Ns...>> {