i2Nav-WHU / OB_GINS

An Optimization-Based GNSS/INS Integrated Navigation System
GNU General Public License v3.0
500 stars 157 forks source link

无法编译通过,出现错误 #10

Closed ISOEhy closed 2 years ago

ISOEhy commented 2 years ago

In file included from /home/YOng/Downloads/OB_GINS-main/src/ob_gins.cc:32: /home/YOng/Downloads/OB_GINS-main/src/factors/pose_parameterization.h:30:44: error: invalid use of incomplete type ‘class ceres::LocalParameterization’ class PoseParameterization : public ceres::LocalParameterization { ^~~~~ In file included from /usr/local/include/ceres/ceres.h:64, from /home/YOng/Downloads/OB_GINS-main/src/factors/gnss_factor.h:27, from /home/YOng/Downloads/OB_GINS-main/src/ob_gins.cc:30: /usr/local/include/ceres/problem.h:56:7: note: forward declaration of ‘class ceres::LocalParameterization’ class LocalParameterization; ^~~~~ In file included from /home/YOng/Downloads/OB_GINS-main/src/ob_gins.cc:32: /home/YOng/Downloads/OB_GINS-main/src/factors/pose_parameterization.h:35:10: error: ‘bool PoseParameterization::Plus(const double, const double, double) const’ marked ‘override’, but does not override bool Plus(const double x, const double delta, double x_plus_delta) const override { ^~~~ /home/YOng/Downloads/OB_GINS-main/src/factors/pose_parameterization.h:52:10: error: ‘bool PoseParameterization::ComputeJacobian(const double, double) const’ marked ‘override’, but does not override bool ComputeJacobian(const double x, double jacobian) const override { ^~~~~~~ /home/YOng/Downloads/OB_GINS-main/src/factors/pose_parameterization.h:60:9: error: ‘int PoseParameterization::GlobalSize() const’ marked ‘override’, but does not override int GlobalSize() const override { ^~~~~~ /home/YOng/Downloads/OB_GINS-main/src/factors/pose_parameterization.h:64:9: error: ‘int PoseParameterization::LocalSize() const’ marked ‘override’, but does not override int LocalSize() const override { ^~~~~ /home/YOng/Downloads/OB_GINS-main/src/ob_gins.cc: In function ‘int main(int, char)’: /home/YOng/Downloads/OB_GINS-main/src/ob_gins.cc:311:95: error: cannot convert ‘PoseParameterization’ to ‘ceres::LocalParameterization’ in initialization ceres::LocalParameterization parameterization = new (PoseParameterization); ^ /home/YOng/Downloads/OB_GINS-main/src/ob_gins.cc:313:63: error: no matching function for call to ‘ceres::Problem::AddParameterBlock(double [7], int, ceres::LocalParameterization&)’ parameterization); ^ In file included from /usr/local/include/ceres/ceres.h:64, from /home/YOng/Downloads/OB_GINS-main/src/factors/gnss_factor.h:27, from /home/YOng/Downloads/OB_GINS-main/src/ob_gins.cc:30: /usr/local/include/ceres/problem.h:261:8: note: candidate: ‘void ceres::Problem::AddParameterBlock(double, int)’ void AddParameterBlock(double values, int size); ^~~~~ /usr/local/include/ceres/problem.h:261:8: note: candidate expects 2 arguments, 3 provided /usr/local/include/ceres/problem.h:274:8: note: candidate: ‘void ceres::Problem::AddParameterBlock(double, int, ceres::Manifold)’ void AddParameterBlock(double values, int size, Manifold manifold); ^~~~~ /usr/local/include/ceres/problem.h:274:8: note: no known conversion for argument 3 from ‘ceres::LocalParameterization’ to ‘ceres::Manifold’ make[2]: ** [CMakeFiles/ob_gins.dir/build.make:104:CMakeFiles/ob_gins.dir/src/ob_gins.cc.o] 错误 1 make[1]: [CMakeFiles/Makefile2:83:CMakeFiles/ob_gins.dir/all] 错误 2 make: *** [Makefile:91:all] 错误 2

thlsealight commented 2 years ago

Please use Ceres release 2.0.0 or 2.1.0, and do not use the newest version.