ethz-asl / okvis

OKVIS: Open Keyframe-based Visual-Inertial SLAM.
Other
1.25k stars 537 forks source link

build error on Ubuntu 18.04 #78

Open cumtchenchang opened 5 years ago

cumtchenchang commented 5 years ago

Thank you for your work. I encounted this this error when building this project. canning dependencies of target okvis_multisensor_processing [ 90%] Building CXX object okvis_multisensor_processing/CMakeFiles/okvis_multisensor_processing.dir/src/ImuFrameSynchronizer.cpp.o [ 92%] Building CXX object okvis_multisensor_processing/CMakeFiles/okvis_multisensor_processing.dir/src/VioVisualizer.cpp.o [ 93%] Building CXX object okvis_multisensor_processing/CMakeFiles/okvis_multisensor_processing.dir/src/ThreadedKFVio.cpp.o [ 95%] Building CXX object okvis_multisensor_processing/CMakeFiles/okvis_multisensor_processing.dir/src/FrameSynchronizer.cpp.o [ 96%] Linking CXX static library libokvis_multisensor_processing.a [ 96%] Built target okvis_multisensor_processing Scanning dependencies of target okvis_app_synchronous [ 98%] Building CXX object CMakeFiles/okvis_app_synchronous.dir/okvis_apps/src/okvis_app_synchronous.cpp.o [100%] Linking CXX executable okvis_app_synchronous okvis_ceres/libokvis_ceres.a(Map.cpp.o): In function okvis::ceres::Map::setParameterization(unsigned long, ceres::LocalParameterization*)': Map.cpp:(.text+0x32a): undefined reference toceres::Problem::SetParameterization(double, ceres::LocalParameterization)' okvis_ceres/libokvis_ceres.a(Map.cpp.o): In function okvis::ceres::Map::Map()': Map.cpp:(.text+0xa94): undefined reference toceres::Solver::Summary::Summary()' Map.cpp:(.text+0xcd5): undefined reference to ceres::Problem::Problem(ceres::Problem::Options const&)' Map.cpp:(.text+0xd56): undefined reference toceres::Problem::~Problem()' Map.cpp:(.text+0xd90): undefined reference to ceres::LocalParameterization::~LocalParameterization()' Map.cpp:(.text+0xda7): undefined reference toceres::LocalParameterization::~LocalParameterization()' Map.cpp:(.text+0xdc5): undefined reference to ceres::LocalParameterization::~LocalParameterization()' Map.cpp:(.text+0xde3): undefined reference toceres::LocalParameterization::~LocalParameterization()' Map.cpp:(.text+0xe01): undefined reference to ceres::LocalParameterization::~LocalParameterization()' okvis_ceres/libokvis_ceres.a(Map.cpp.o): In functionokvis::ceres::Map::setParameterBlockConstant(unsigned long)': Map.cpp:(.text+0x1032): undefined reference to ceres::Problem::SetParameterBlockConstant(double*)' okvis_ceres/libokvis_ceres.a(Map.cpp.o): In functionokvis::ceres::Map::setParameterBlockVariable(unsigned long)': Map.cpp:(.text+0x1132): undefined reference to ceres::Problem::SetParameterBlockVariable(double*)' okvis_ceres/libokvis_ceres.a(Map.cpp.o): In functionokvis::ceres::Map::removeResidualBlock(ceres::internal::ResidualBlock)': Map.cpp:(.text+0x369c): undefined reference to `ceres::Problem::RemoveResidualBlock(ceres::internal::ResidualBlock)' okvis_ceres/libokvis_ceres.a(Map.cpp.o): In function okvis::ceres::Map::removeParameterBlock(unsigned long)': Map.cpp:(.text+0x3ae3): undefined reference toceres::Problem::RemoveParameterBlock(double)' okvis_ceres/libokvis_ceres.a(Map.cpp.o): In function okvis::ceres::Map::addParameterBlock(std::shared_ptr<okvis::ceres::ParameterBlock>, int, int)': Map.cpp:(.text+0x3db2): undefined reference toceres::Problem::AddParameterBlock(double, int, ceres::LocalParameterization)' Map.cpp:(.text+0x3e5d): undefined reference to `ceres::Problem::AddParameterBlock(double, int)' okvis_ceres/libokvis_ceres.a(Map.cpp.o): In function okvis::ceres::Map::addResidualBlock(std::shared_ptr<ceres::CostFunction>, ceres::LossFunction*, std::vector<std::shared_ptr<okvis::ceres::ParameterBlock>, std::allocator<std::shared_ptr<okvis::ceres::ParameterBlock> > >&)': Map.cpp:(.text+0x4073): undefined reference toceres::Problem::AddResidualBlock(ceres::CostFunction, ceres::LossFunction, std::vector<double, std::allocator<double> > const&)' okvis_ceres/libokvis_ceres.a(Map.cpp.o): In function std::_Sp_counted_ptr<ceres::Problem*, (__gnu_cxx::_Lock_policy)2>::_M_dispose()': Map.cpp:(.text._ZNSt15_Sp_counted_ptrIPN5ceres7ProblemELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv[_ZNSt15_Sp_counted_ptrIPN5ceres7ProblemELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv]+0xe): undefined reference toceres::Problem::~Problem()' okvis_ceres/libokvis_ceres.a(HomogeneousPointLocalParameterization.cpp.o): In function okvis::ceres::HomogeneousPointLocalParameterization::~HomogeneousPointLocalParameterization()': HomogeneousPointLocalParameterization.cpp:(.text._ZN5okvis5ceres37HomogeneousPointLocalParameterizationD2Ev[_ZN5okvis5ceres37HomogeneousPointLocalParameterizationD5Ev]+0xf): undefined reference toceres::LocalParameterization::~LocalParameterization()' okvis_ceres/libokvis_ceres.a(HomogeneousPointLocalParameterization.cpp.o): In function non-virtual thunk to okvis::ceres::HomogeneousPointLocalParameterization::~HomogeneousPointLocalParameterization()': HomogeneousPointLocalParameterization.cpp:(.text._ZN5okvis5ceres37HomogeneousPointLocalParameterizationD2Ev[_ZN5okvis5ceres37HomogeneousPointLocalParameterizationD5Ev]+0x33): undefined reference toceres::LocalParameterization::~LocalParameterization()' okvis_ceres/libokvis_ceres.a(HomogeneousPointLocalParameterization.cpp.o): In function okvis::ceres::HomogeneousPointLocalParameterization::~HomogeneousPointLocalParameterization()': HomogeneousPointLocalParameterization.cpp:(.text._ZN5okvis5ceres37HomogeneousPointLocalParameterizationD0Ev[_ZN5okvis5ceres37HomogeneousPointLocalParameterizationD5Ev]+0x13): undefined reference toceres::LocalParameterization::~LocalParameterization()' okvis_ceres/libokvis_ceres.a(HomogeneousPointLocalParameterization.cpp.o): In function non-virtual thunk to okvis::ceres::HomogeneousPointLocalParameterization::~HomogeneousPointLocalParameterization()': HomogeneousPointLocalParameterization.cpp:(.text._ZN5okvis5ceres37HomogeneousPointLocalParameterizationD0Ev[_ZN5okvis5ceres37HomogeneousPointLocalParameterizationD5Ev]+0x38): undefined reference toceres::LocalParameterization::~LocalParameterization()' okvis_ceres/libokvis_ceres.a(HomogeneousPointLocalParameterization.cpp.o):(.data.rel.ro._ZTIN5okvis5ceres37HomogeneousPointLocalParameterizationE[_ZTIN5okvis5ceres37HomogeneousPointLocalParameterizationE]+0x18): undefined reference to typeinfo for ceres::LocalParameterization' okvis_ceres/libokvis_ceres.a(HomogeneousPointLocalParameterization.cpp.o):(.data.rel.ro._ZTVN5okvis5ceres37HomogeneousPointLocalParameterizationE[_ZTVN5okvis5ceres37HomogeneousPointLocalParameterizationE]+0x30): undefined reference toceres::LocalParameterization::MultiplyByJacobian(double const, int, double const, double) const' okvis_ceres/libokvis_ceres.a(PoseLocalParameterization.cpp.o): In function okvis::ceres::PoseLocalParameterization2d::~PoseLocalParameterization2d()': PoseLocalParameterization.cpp:(.text._ZN5okvis5ceres27PoseLocalParameterization2dD2Ev[_ZN5okvis5ceres27PoseLocalParameterization2dD5Ev]+0xf): undefined reference toceres::LocalParameterization::~LocalParameterization()' okvis_ceres/libokvis_ceres.a(PoseLocalParameterization.cpp.o): In function non-virtual thunk to okvis::ceres::PoseLocalParameterization2d::~PoseLocalParameterization2d()': PoseLocalParameterization.cpp:(.text._ZN5okvis5ceres27PoseLocalParameterization2dD2Ev[_ZN5okvis5ceres27PoseLocalParameterization2dD5Ev]+0x33): undefined reference toceres::LocalParameterization::~LocalParameterization()' okvis_ceres/libokvis_ceres.a(PoseLocalParameterization.cpp.o): In function okvis::ceres::PoseLocalParameterization2d::~PoseLocalParameterization2d()': PoseLocalParameterization.cpp:(.text._ZN5okvis5ceres27PoseLocalParameterization2dD0Ev[_ZN5okvis5ceres27PoseLocalParameterization2dD5Ev]+0x13): undefined reference toceres::LocalParameterization::~LocalParameterization()' okvis_ceres/libokvis_ceres.a(PoseLocalParameterization.cpp.o): In function non-virtual thunk to okvis::ceres::PoseLocalParameterization2d::~PoseLocalParameterization2d()': PoseLocalParameterization.cpp:(.text._ZN5okvis5ceres27PoseLocalParameterization2dD0Ev[_ZN5okvis5ceres27PoseLocalParameterization2dD5Ev]+0x38): undefined reference toceres::LocalParameterization::~LocalParameterization()' okvis_ceres/libokvis_ceres.a(PoseLocalParameterization.cpp.o): In function okvis::ceres::PoseLocalParameterization4d::~PoseLocalParameterization4d()': PoseLocalParameterization.cpp:(.text._ZN5okvis5ceres27PoseLocalParameterization4dD2Ev[_ZN5okvis5ceres27PoseLocalParameterization4dD5Ev]+0xf): undefined reference toceres::LocalParameterization::~LocalParameterization()' okvis_ceres/libokvis_ceres.a(PoseLocalParameterization.cpp.o):PoseLocalParameterization.cpp:(.text._ZN5okvis5ceres27PoseLocalParameterization4dD2Ev[_ZN5okvis5ceres27PoseLocalParameterization4dD5Ev]+0x33): more undefined references to ceres::LocalParameterization::~LocalParameterization()' follow okvis_ceres/libokvis_ceres.a(PoseLocalParameterization.cpp.o):(.data.rel.ro._ZTIN5okvis5ceres25PoseLocalParameterizationE[_ZTIN5okvis5ceres25PoseLocalParameterizationE]+0x18): undefined reference totypeinfo for ceres::LocalParameterization' okvis_ceres/libokvis_ceres.a(PoseLocalParameterization.cpp.o):(.data.rel.ro._ZTIN5okvis5ceres27PoseLocalParameterization3dE[_ZTIN5okvis5ceres27PoseLocalParameterization3dE]+0x18): undefined reference to typeinfo for ceres::LocalParameterization' okvis_ceres/libokvis_ceres.a(PoseLocalParameterization.cpp.o):(.data.rel.ro._ZTIN5okvis5ceres27PoseLocalParameterization4dE[_ZTIN5okvis5ceres27PoseLocalParameterization4dE]+0x18): undefined reference totypeinfo for ceres::LocalParameterization' okvis_ceres/libokvis_ceres.a(PoseLocalParameterization.cpp.o):(.data.rel.ro._ZTIN5okvis5ceres27PoseLocalParameterization2dE[_ZTIN5okvis5ceres27PoseLocalParameterization2dE]+0x18): undefined reference to typeinfo for ceres::LocalParameterization' okvis_ceres/libokvis_ceres.a(PoseLocalParameterization.cpp.o):(.data.rel.ro._ZTVN5okvis5ceres25PoseLocalParameterizationE[_ZTVN5okvis5ceres25PoseLocalParameterizationE]+0x30): undefined reference toceres::LocalParameterization::MultiplyByJacobian(double const, int, double const, double) const' okvis_ceres/libokvis_ceres.a(PoseLocalParameterization.cpp.o):(.data.rel.ro._ZTVN5okvis5ceres27PoseLocalParameterization3dE[_ZTVN5okvis5ceres27PoseLocalParameterization3dE]+0x30): undefined reference to ceres::LocalParameterization::MultiplyByJacobian(double const*, int, double const*, double*) const' okvis_ceres/libokvis_ceres.a(PoseLocalParameterization.cpp.o):(.data.rel.ro._ZTVN5okvis5ceres27PoseLocalParameterization4dE[_ZTVN5okvis5ceres27PoseLocalParameterization4dE]+0x30): undefined reference toceres::LocalParameterization::MultiplyByJacobian(double const, int, double const, double) const' okvis_ceres/libokvis_ceres.a(PoseLocalParameterization.cpp.o):(.data.rel.ro._ZTVN5okvis5ceres27PoseLocalParameterization2dE[_ZTVN5okvis5ceres27PoseLocalParameterization2dE]+0x30): undefined reference to `ceres::LocalParameterization::MultiplyByJacobian(double const, int, double const, double) const' okvis_ceres/libokvis_ceres.a(Estimator.cpp.o): In function okvis::Estimator::Estimator(std::shared_ptr<okvis::ceres::Map>)': Estimator.cpp:(.text+0x21c1): undefined reference tovtable for ceres::CauchyLoss' Estimator.cpp:(.text+0x222f): undefined reference to vtable for ceres::HuberLoss' okvis_ceres/libokvis_ceres.a(Estimator.cpp.o): In functionokvis::Estimator::optimize(unsigned long, unsigned long, bool)': Estimator.cpp:(.text+0x2cff): undefined reference to ceres::Solve(ceres::Solver::Options const&, ceres::Problem*, ceres::Solver::Summary*)' Estimator.cpp:(.text+0x2f34): undefined reference toceres::Solver::Summary::FullReport[abi:cxx11]() const' okvis_ceres/libokvis_ceres.a(Estimator.cpp.o): In function okvis::Estimator::Estimator()': Estimator.cpp:(.text+0x3498): undefined reference tovtable for ceres::CauchyLoss' Estimator.cpp:(.text+0x3506): undefined reference to vtable for ceres::HuberLoss' okvis_ceres/libokvis_ceres.a(Estimator.cpp.o): In functionokvis::ceres::Map::~Map()': Estimator.cpp:(.text._ZN5okvis5ceres3MapD2Ev[_ZN5okvis5ceres3MapD5Ev]+0x27): undefined reference to ceres::LocalParameterization::~LocalParameterization()' Estimator.cpp:(.text._ZN5okvis5ceres3MapD2Ev[_ZN5okvis5ceres3MapD5Ev]+0x45): undefined reference toceres::LocalParameterization::~LocalParameterization()' Estimator.cpp:(.text._ZN5okvis5ceres3MapD2Ev[_ZN5okvis5ceres3MapD5Ev]+0x63): undefined reference to ceres::LocalParameterization::~LocalParameterization()' Estimator.cpp:(.text._ZN5okvis5ceres3MapD2Ev[_ZN5okvis5ceres3MapD5Ev]+0x81): undefined reference toceres::LocalParameterization::~LocalParameterization()' Estimator.cpp:(.text._ZN5okvis5ceres3MapD2Ev[_ZN5okvis5ceres3MapD5Ev]+0x9f): undefined reference to ceres::LocalParameterization::~LocalParameterization()' okvis_ceres/libokvis_ceres.a(LocalParamizationAdditionalInterfaces.cpp.o): In functionokvis::ceres::LocalParamizationAdditionalInterfaces::verify(double const*, double) const': LocalParamizationAdditionalInterfaces.cpp:(.text+0x34): undefined reference to `typeinfo for ceres::LocalParameterization' collect2: error: ld returned 1 exit status CMakeFiles/okvis_app_synchronous.dir/build.make:128: recipe for target 'okvis_app_synchronous' failed make[2]: [okvis_app_synchronous] Error 1 CMakeFiles/Makefile2:152: recipe for target 'CMakeFiles/okvis_app_synchronous.dir/all' failed make[1]: [CMakeFiles/okvis_app_synchronous.dir/all] Error 2 Makefile:129: recipe for target 'all' failed make: *** [all] Error 2

maryanpetruk commented 5 months ago

I have the same issue, with ceres. What can be the solution to it?