Ubuntu16.04下编译ORB_SLAM2错误
发布时间:2020-12-04 22:53:37 所属栏目:Ubuntu 来源:互联网
导读:到Ubuntu16.04下编译ORB_SLAM2报错,提示: /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:745:3:error: static assertion failed:YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBA
到Ubuntu16.04下编译ORB_SLAM2报错,提示: /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:745:3:error: static assertion failed:YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:712:27: required from ‘void Eigen::internal::call_assignment(Dst&,const Func&,typename Eigen::internal::enable_if<(! Eigen::internal::evaluator_assume_aliasing<Src>::value),void*>::type) [with Dst = Eigen::Matrix<int,1>; Func = Eigen::internal::assign_op<int>; typename Eigen::internal::enable_if<(! Eigen::internal::evaluator_assume_aliasing<Src>::value),void*>::type = void*]’ /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:693:18: required from ‘void Eigen::internal::call_assignment(Dst&,const Src&) [with Dst = Eigen::Matrix<int,1>]’ /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:682:32: required from ‘Derived& Eigen::PlainObjectBase<Derived>::_set(const Eigen::DenseBase<OtherDerived>&) [with OtherDerived = Eigen::Matrix<long int,1>; Derived = Eigen::Matrix<int,1>]’ /usr/include/eigen3/Eigen/src/Core/Matrix.h:225:24: required from ‘Eigen::Matrix<_Scalar,_Rows,_Cols,_Options,_MaxRows,_MaxCols>& Eigen::Matrix<_Scalar,_MaxCols>::operator=(const Eigen::DenseBase<OtherDerived>&) [with OtherDerived = Eigen::Matrix<long int,1>; _Scalar = int; int _Rows = -1; int _Cols = 1; int _Options = 0; int _MaxRows = -1; int _MaxCols = 1]’ /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h:367:17: required from ‘Eigen::PermutationMatrix<SizeAtCompileTime,MaxSizeAtCompileTime,IndexType>& Eigen::PermutationMatrix<SizeAtCompileTime,IndexType>::operator=(const Eigen::PermutationBase<OtherDerived>&) [with Other = Eigen::PermutationMatrix<-1,long int>; int SizeAtCompileTime = -1; int MaxSizeAtCompileTime = -1; _StorageIndex = int]’ /home/armmlinux/zdfwork/work/SLAM/orb_slam/ORB_SLAM2-master/Thirdparty/g2o/g2o/solvers/linear_solver_eigen.h:68:18: required from ‘void g2o::LinearSolverEigen<MatrixType>::CholeskyDecomposition::analyzePatternWithPermutation(g2o::LinearSolverEigen<MatrixType>::SparseMatrix&,const PermutationMatrix&) [with MatrixType = Eigen::Matrix<double,7,7>; g2o::LinearSolverEigen<MatrixType>::SparseMatrix = Eigen::SparseMatrix<double,0>; g2o::LinearSolverEigen<MatrixType>::PermutationMatrix = Eigen::PermutationMatrix<-1,long int>]’ /home/armmlinux/zdfwork/work/SLAM/orb_slam/ORB_SLAM2-master/Thirdparty/g2o/g2o/solvers/linear_solver_eigen.h:195:9: required from ‘void g2o::LinearSolverEigen<MatrixType>::computeSymbolicDecomposition(const g2o::SparseBlockMatrix<MatrixType>&) [with MatrixType = Eigen::Matrix<double,7>]’ /home/armmlinux/zdfwork/work/SLAM/orb_slam/ORB_SLAM2-master/Thirdparty/g2o/g2o/solvers/linear_solver_eigen.h:100:37: required from ‘bool g2o::LinearSolverEigen<MatrixType>::solve(const g2o::SparseBlockMatrix<MatrixType>&,double*,double*) [with MatrixType = Eigen::Matrix<double,7>]’ /home/armmlinux/zdfwork/work/SLAM/orb_slam/ORB_SLAM2-master/src/Optimizer.cc:1244:1: required from here /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:32:40: error: static assertion failed: YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG); ^ /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h:707:3: note: in expansion of macro ‘EIGEN_STATIC_ASSERT’ EIGEN_STATIC_ASSERT((internal::functor_is_product_like<BINOP>::ret ^ /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:745:3: note: in expansion of macro ‘EIGEN_CHECK_BINARY_COMPATIBILIY’ EIGEN_CHECK_BINARY_COMPATIBILIY(Func,typename Src::Scalar); ^ CMakeFiles/ORB_SLAM2.dir/build.make:350: recipe for target 'CMakeFiles/ORB_SLAM2.dir/src/Optimizer.cc.o' failed make[2]: *** [CMakeFiles/ORB_SLAM2.dir/src/Optimizer.cc.o] Error 1 CMakeFiles/Makefile2:178: recipe for target 'CMakeFiles/ORB_SLAM2.dir/all' failed make[1]: *** [CMakeFiles/ORB_SLAM2.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2
1 template <typename MatrixType> 2 class LinearSolverEigen: public LinearSolver<MatrixType> 3 { 4 public: 5 typedef Eigen::SparseMatrix<double,Eigen::ColMajor> SparseMatrix; 6 typedef Eigen::Triplet<double> Triplet; 7 typedef Eigen::PermutationMatrix<Eigen::Dynamic,Eigen::Dynamic,SparseMatrix::Index> PermutationMatrix; 改为 1 template <typename MatrixType> public LinearSolver<MatrixType> 3 { public: SparseMatrix; double> Triplet; 8 typedef Eigen::PermutationMatrix<Eigen::Dynamic,int> PermutationMatrix; 9 /** (编辑:台州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Ubuntu与Rancher联合发布Kubernetes云原生平台
- Ubuntu 14.04 LTS 下升级 gcc 到 gcc-4.9、gcc-5 版本
- Ubuntu使用VNC连接windows错误: connection: no matahcing
- Ubuntu 12.04 搭建ndk编译环境
- [教程]Ubuntu 下为单版本和多版本 PHP 安装扩展
- Ubuntu16.04 LTS 下安装 Android Studio 2.2.2 的详细步骤
- ubuntu下ndk的安装和使用
- Ubuntu 14.04中安装wireshark
- Ubuntu16.04 64bits安装docker
- Ubuntu apt-get彻底卸载软件包