Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to find osqp-eigen #33

Closed
GiulioRomualdi opened this issue Jan 24, 2020 · 8 comments
Closed

Unable to find osqp-eigen #33

GiulioRomualdi opened this issue Jan 24, 2020 · 8 comments
Labels

Comments

@GiulioRomualdi
Copy link
Member

I'm trying to build the unicycle-footstep-planner on Windows using Visual Studio 2019. When I generate the solution using CMake, I retrieved the following error.

CMake Error at CMakeLists.txt:93 (add_library):
  Target "UnicyclePlanner" links to target "OsqpEigen::OsqpEigen" but the
  target was not found.  Perhaps a find_package() call is missing for an
  IMPORTED target, or an ALIAS target is missing?


CMake Error at CMakeLists.txt:93 (add_library):
  Target "UnicyclePlanner" links to target "osqp::osqp" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?


CMake Error at CMakeLists.txt:93 (add_library):
  Target "UnicyclePlanner" links to target "OsqpEigen::OsqpEigen" but the
  target was not found.  Perhaps a find_package() call is missing for an
  IMPORTED target, or an ALIAS target is missing?


CMake Error at CMakeLists.txt:93 (add_library):
  Target "UnicyclePlanner" links to target "osqp::osqp" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?


CMake Error at CMakeLists.txt:93 (add_library):
  Target "UnicyclePlanner" links to target "OsqpEigen::OsqpEigen" but the
  target was not found.  Perhaps a find_package() call is missing for an
  IMPORTED target, or an ALIAS target is missing?


CMake Error at CMakeLists.txt:93 (add_library):
  Target "UnicyclePlanner" links to target "osqp::osqp" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?


CMake Error at CMakeLists.txt:93 (add_library):
  Target "UnicyclePlanner" links to target "OsqpEigen::OsqpEigen" but the
  target was not found.  Perhaps a find_package() call is missing for an
  IMPORTED target, or an ALIAS target is missing?


CMake Error at CMakeLists.txt:93 (add_library):
  Target "UnicyclePlanner" links to target "osqp::osqp" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?


CMake Error at CMakeLists.txt:93 (add_library):
  Target "UnicyclePlanner" links to target "OsqpEigen::OsqpEigen" but the
  target was not found.  Perhaps a find_package() call is missing for an
  IMPORTED target, or an ALIAS target is missing?


CMake Error at CMakeLists.txt:93 (add_library):
  Target "UnicyclePlanner" links to target "osqp::osqp" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

The planner uses nither osqp-eigen nor osqp. However iDynTree, that is widely used in the unicycle library, required osqp-eigen or osqp.

@GiulioRomualdi
Copy link
Member Author

Since the unicycle-footstep-planner should depend only on iDynTree::idyntree-core I modified the code as follows

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 70c6517..9b6a01b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -93,7 +93,7 @@ set(UCPLANNER_HEADERS include/ControlledUnicycle.h
 add_library(UnicyclePlanner ${UCPLANNER_HEADERS} ${UCPLANNER_SOURCES})
 target_include_directories(UnicyclePlanner PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
 target_include_directories(UnicyclePlanner PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
-target_link_libraries(UnicyclePlanner ${iDynTree_LIBRARIES})
+target_link_libraries(UnicyclePlanner iDynTree::idyntree-core)

 set_property(TARGET UnicyclePlanner PROPERTY PUBLIC_HEADER ${UCPLANNER_HEADERS})
 target_compile_features(UnicyclePlanner PUBLIC cxx_attribute_deprecated)

The generation phase went fine. However when I tried to compile the code. The linker return the following error

2>Generating Code...
2>Auto build dll exports
2>   Creating library C:/Users/gromualdi/robot-code/robotology-superbuild/build/robotology/UnicyclePlanner/lib/RelWithDebInfo/UnicyclePlanner.lib and object C:/Users/gromualdi/robot-code/robotology-superbuild/build/robotology/UnicyclePlanner/lib/RelWithDebInfo/UnicyclePlanner.exp
2>ControlledUnicycle.obj : error LNK2019: unresolved external symbol "public: __cdecl iDynTree::optimalcontrol::DynamicalSystem::DynamicalSystem(unsigned __int64,unsigned __int64)" (??0DynamicalSystem@optimalcontrol@iDynTree@@QEAA@_K0@Z) referenced in function "public: __cdecl ControlledUnicycle::ControlledUnicycle(void)" (??0ControlledUnicycle@@QEAA@XZ)
2>ControlledUnicycle.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl iDynTree::optimalcontrol::DynamicalSystem::~DynamicalSystem(void)" (??1DynamicalSystem@optimalcontrol@iDynTree@@UEAA@XZ) referenced in function "int `public: __cdecl ControlledUnicycle::ControlledUnicycle(void)'::`1'::dtor$0" (?dtor$0@?0???0ControlledUnicycle@@QEAA@XZ@4HA)
2>ControlledUnicycle.obj : error LNK2019: unresolved external symbol "public: unsigned __int64 __cdecl iDynTree::optimalcontrol::DynamicalSystem::stateSpaceSize(void)const " (?stateSpaceSize@DynamicalSystem@optimalcontrol@iDynTree@@QEBA_KXZ) referenced in function "public: virtual bool __cdecl ControlledUnicycle::dynamics(class iDynTree::VectorDynSize const &,double,class iDynTree::VectorDynSize &)" (?dynamics@ControlledUnicycle@@UEAA_NAEBVVectorDynSize@iDynTree@@NAEAV23@@Z)
2>ControlledUnicycle.obj : error LNK2019: unresolved external symbol "public: unsigned __int64 __cdecl iDynTree::optimalcontrol::DynamicalSystem::controlSpaceSize(void)const " (?controlSpaceSize@DynamicalSystem@optimalcontrol@iDynTree@@QEBA_KXZ) referenced in function "public: bool __cdecl ControlledUnicycle::setController(class std::shared_ptr<class UnicyleController>)" (?setController@ControlledUnicycle@@QEAA_NV?$shared_ptr@VUnicyleController@@@std@@@Z)
2>ControlledUnicycle.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::DynamicalSystem::setControlInput(class iDynTree::VectorDynSize const &)" (?setControlInput@DynamicalSystem@optimalcontrol@iDynTree@@UEAA_NAEBVVectorDynSize@3@@Z)
2>ControlledUnicycle.obj : error LNK2001: unresolved external symbol "public: virtual class iDynTree::VectorDynSize const & __cdecl iDynTree::optimalcontrol::DynamicalSystem::controlInput(void)const " (?controlInput@DynamicalSystem@optimalcontrol@iDynTree@@UEBAAEBVVectorDynSize@3@XZ)
2>ControlledUnicycle.obj : error LNK2001: unresolved external symbol "public: virtual double __cdecl iDynTree::optimalcontrol::DynamicalSystem::controlInput(unsigned int)const " (?controlInput@DynamicalSystem@optimalcontrol@iDynTree@@UEBANI@Z)
2>ControlledUnicycle.obj : error LNK2001: unresolved external symbol "public: virtual double __cdecl iDynTree::optimalcontrol::DynamicalSystem::initialState(unsigned int)const " (?initialState@DynamicalSystem@optimalcontrol@iDynTree@@UEBANI@Z)
2>ControlledUnicycle.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::DynamicalSystem::setInitialState(class iDynTree::VectorDynSize const &)" (?setInitialState@DynamicalSystem@optimalcontrol@iDynTree@@UEAA_NAEBVVectorDynSize@3@@Z)
2>ControlledUnicycle.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::DynamicalSystem::dynamicsStateFirstDerivative(class iDynTree::VectorDynSize const &,double,class iDynTree::MatrixDynSize &)" (?dynamicsStateFirstDerivative@DynamicalSystem@optimalcontrol@iDynTree@@UEAA_NAEBVVectorDynSize@3@NAEAVMatrixDynSize@3@@Z)
2>ControlledUnicycle.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::DynamicalSystem::dynamicsControlFirstDerivative(class iDynTree::VectorDynSize const &,double,class iDynTree::MatrixDynSize &)" (?dynamicsControlFirstDerivative@DynamicalSystem@optimalcontrol@iDynTree@@UEAA_NAEBVVectorDynSize@3@NAEAVMatrixDynSize@3@@Z)
2>ControlledUnicycle.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::DynamicalSystem::dynamicsStateFirstDerivativeSparsity(class iDynTree::optimalcontrol::SparsityStructure &)" (?dynamicsStateFirstDerivativeSparsity@DynamicalSystem@optimalcontrol@iDynTree@@UEAA_NAEAVSparsityStructure@23@@Z)
2>ControlledUnicycle.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::DynamicalSystem::dynamicsControlFirstDerivativeSparsity(class iDynTree::optimalcontrol::SparsityStructure &)" (?dynamicsControlFirstDerivativeSparsity@DynamicalSystem@optimalcontrol@iDynTree@@UEAA_NAEAVSparsityStructure@23@@Z)
2>ControlledUnicycle.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::DynamicalSystem::dynamicsSecondPartialDerivativeWRTState(double,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &,class iDynTree::MatrixDynSize &)" (?dynamicsSecondPartialDerivativeWRTState@DynamicalSystem@optimalcontrol@iDynTree@@UEAA_NNAEBVVectorDynSize@3@0AEAVMatrixDynSize@3@@Z)
2>ControlledUnicycle.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::DynamicalSystem::dynamicsSecondPartialDerivativeWRTControl(double,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &,class iDynTree::MatrixDynSize &)" (?dynamicsSecondPartialDerivativeWRTControl@DynamicalSystem@optimalcontrol@iDynTree@@UEAA_NNAEBVVectorDynSize@3@0AEAVMatrixDynSize@3@@Z)
2>ControlledUnicycle.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::DynamicalSystem::dynamicsSecondPartialDerivativeWRTStateControl(double,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &,class iDynTree::MatrixDynSize &)" (?dynamicsSecondPartialDerivativeWRTStateControl@DynamicalSystem@optimalcontrol@iDynTree@@UEAA_NNAEBVVectorDynSize@3@0AEAVMatrixDynSize@3@@Z)
2>ControlledUnicycle.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::DynamicalSystem::dynamicsSecondPartialDerivativeWRTStateSparsity(class iDynTree::optimalcontrol::SparsityStructure &)" (?dynamicsSecondPartialDerivativeWRTStateSparsity@DynamicalSystem@optimalcontrol@iDynTree@@UEAA_NAEAVSparsityStructure@23@@Z)
2>ControlledUnicycle.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::DynamicalSystem::dynamicsSecondPartialDerivativeWRTStateControlSparsity(class iDynTree::optimalcontrol::SparsityStructure &)" (?dynamicsSecondPartialDerivativeWRTStateControlSparsity@DynamicalSystem@optimalcontrol@iDynTree@@UEAA_NAEAVSparsityStructure@23@@Z)
2>ControlledUnicycle.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::DynamicalSystem::dynamicsSecondPartialDerivativeWRTControlSparsity(class iDynTree::optimalcontrol::SparsityStructure &)" (?dynamicsSecondPartialDerivativeWRTControlSparsity@DynamicalSystem@optimalcontrol@iDynTree@@UEAA_NAEAVSparsityStructure@23@@Z)
2>ControlledUnicycle.obj : error LNK2019: unresolved external symbol "public: unsigned __int64 __cdecl iDynTree::optimalcontrol::Controller::controlSpaceSize(void)" (?controlSpaceSize@Controller@optimalcontrol@iDynTree@@QEAA_KXZ) referenced in function "public: bool __cdecl ControlledUnicycle::setController(class std::shared_ptr<class UnicyleController>)" (?setController@ControlledUnicycle@@QEAA_NV?$shared_ptr@VUnicyleController@@@std@@@Z)
2>UnicycleController.obj : error LNK2001: unresolved external symbol "public: unsigned __int64 __cdecl iDynTree::optimalcontrol::Controller::controlSpaceSize(void)" (?controlSpaceSize@Controller@optimalcontrol@iDynTree@@QEAA_KXZ)
2>UnicyclePlanner.obj : error LNK2019: unresolved external symbol "public: __cdecl iDynTree::optimalcontrol::OptimalControlProblem::~OptimalControlProblem(void)" (??1OptimalControlProblem@optimalcontrol@iDynTree@@QEAA@XZ) referenced in function "public: __cdecl UnicycleOptimization::~UnicycleOptimization(void)" (??1UnicycleOptimization@@QEAA@XZ)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: __cdecl iDynTree::optimalcontrol::OptimalControlProblem::~OptimalControlProblem(void)" (??1OptimalControlProblem@optimalcontrol@iDynTree@@QEAA@XZ)
2>UnicycleTrajectoryGenerator.obj : error LNK2001: unresolved external symbol "public: __cdecl iDynTree::optimalcontrol::OptimalControlProblem::~OptimalControlProblem(void)" (??1OptimalControlProblem@optimalcontrol@iDynTree@@QEAA@XZ)
2>UnicycleGenerator.obj : error LNK2001: unresolved external symbol "public: __cdecl iDynTree::optimalcontrol::OptimalControlProblem::~OptimalControlProblem(void)" (??1OptimalControlProblem@optimalcontrol@iDynTree@@QEAA@XZ)
2>UnicyclePlanner.obj : error LNK2019: unresolved external symbol "public: bool __cdecl iDynTree::optimalcontrol::integrators::Integrator::setMaximumStepSize(double)" (?setMaximumStepSize@Integrator@integrators@optimalcontrol@iDynTree@@QEAA_NN@Z) referenced in function "public: __cdecl UnicyclePlanner::UnicyclePlanner(void)" (??0UnicyclePlanner@@QEAA@XZ)
2>UnicyclePlanner.obj : error LNK2019: unresolved external symbol "public: __cdecl iDynTree::optimalcontrol::integrators::RK4::RK4(class std::shared_ptr<class iDynTree::optimalcontrol::DynamicalSystem>)" (??0RK4@integrators@optimalcontrol@iDynTree@@QEAA@V?$shared_ptr@VDynamicalSystem@optimalcontrol@iDynTree@@@std@@@Z) referenced in function "public: __cdecl UnicyclePlanner::UnicyclePlanner(void)" (??0UnicyclePlanner@@QEAA@XZ)
2>UnicyclePlanner.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl iDynTree::optimalcontrol::integrators::RK4::~RK4(void)" (??1RK4@integrators@optimalcontrol@iDynTree@@UEAA@XZ) referenced in function "int `public: __cdecl UnicyclePlanner::UnicyclePlanner(void)'::`1'::dtor$3" (?dtor$3@?0???0UnicyclePlanner@@QEAA@XZ@4HA)
2>UnicycleTrajectoryGenerator.obj : error LNK2001: unresolved external symbol "public: virtual __cdecl iDynTree::optimalcontrol::integrators::RK4::~RK4(void)" (??1RK4@integrators@optimalcontrol@iDynTree@@UEAA@XZ)
2>UnicycleGenerator.obj : error LNK2001: unresolved external symbol "public: virtual __cdecl iDynTree::optimalcontrol::integrators::RK4::~RK4(void)" (??1RK4@integrators@optimalcontrol@iDynTree@@UEAA@XZ)
2>UnicycleController.obj : error LNK2019: unresolved external symbol "public: __cdecl iDynTree::optimalcontrol::Controller::Controller(unsigned __int64)" (??0Controller@optimalcontrol@iDynTree@@QEAA@_K@Z) referenced in function "public: __cdecl UnicyleController::UnicyleController(void)" (??0UnicyleController@@QEAA@XZ)
2>UnicycleController.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl iDynTree::optimalcontrol::Controller::~Controller(void)" (??1Controller@optimalcontrol@iDynTree@@UEAA@XZ) referenced in function "int `public: __cdecl UnicyleController::UnicyleController(void)'::`1'::dtor$0" (?dtor$0@?0???0UnicyleController@@QEAA@XZ@4HA)
2>UnicycleOptimization.obj : error LNK2019: unresolved external symbol "public: __cdecl iDynTree::optimalcontrol::Constraint::Constraint(unsigned __int64,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (??0Constraint@optimalcontrol@iDynTree@@QEAA@_KV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function "void __cdecl std::_Construct_in_place<class MaxAngle>(class MaxAngle &)" (??$_Construct_in_place@VMaxAngle@@$$V@std@@YAXAEAVMaxAngle@@@Z)
2>UnicycleOptimization.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl iDynTree::optimalcontrol::Constraint::~Constraint(void)" (??1Constraint@optimalcontrol@iDynTree@@UEAA@XZ) referenced in function "int `void __cdecl std::_Construct_in_place<class MaxAngle>(class MaxAngle &)'::`1'::dtor$1" (?dtor$1@?0???$_Construct_in_place@VMaxAngle@@$$V@std@@YAXAEAVMaxAngle@@@Z@4HA)
2>UnicycleOptimization.obj : error LNK2019: unresolved external symbol "public: bool __cdecl iDynTree::optimalcontrol::Constraint::setLowerBound(class iDynTree::VectorDynSize const &)" (?setLowerBound@Constraint@optimalcontrol@iDynTree@@QEAA_NAEBVVectorDynSize@3@@Z) referenced in function "public: bool __cdecl UnicycleOptimization::setMinWidth(double)" (?setMinWidth@UnicycleOptimization@@QEAA_NN@Z)
2>UnicycleOptimization.obj : error LNK2019: unresolved external symbol "public: bool __cdecl iDynTree::optimalcontrol::Constraint::setUpperBound(class iDynTree::VectorDynSize const &)" (?setUpperBound@Constraint@optimalcontrol@iDynTree@@QEAA_NAEBVVectorDynSize@3@@Z) referenced in function "public: bool __cdecl UnicycleOptimization::setMaxAngleVariation(double)" (?setMaxAngleVariation@UnicycleOptimization@@QEAA_NN@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Constraint::constraintJacobianWRTState(double,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &,class iDynTree::MatrixDynSize &)" (?constraintJacobianWRTState@Constraint@optimalcontrol@iDynTree@@UEAA_NNAEBVVectorDynSize@3@0AEAVMatrixDynSize@3@@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Constraint::constraintJacobianWRTControl(double,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &,class iDynTree::MatrixDynSize &)" (?constraintJacobianWRTControl@Constraint@optimalcontrol@iDynTree@@UEAA_NNAEBVVectorDynSize@3@0AEAVMatrixDynSize@3@@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual unsigned __int64 __cdecl iDynTree::optimalcontrol::Constraint::expectedStateSpaceSize(void)const " (?expectedStateSpaceSize@Constraint@optimalcontrol@iDynTree@@UEBA_KXZ)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual unsigned __int64 __cdecl iDynTree::optimalcontrol::Constraint::expectedControlSpaceSize(void)const " (?expectedControlSpaceSize@Constraint@optimalcontrol@iDynTree@@UEBA_KXZ)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Constraint::constraintJacobianWRTStateSparsity(class iDynTree::optimalcontrol::SparsityStructure &)" (?constraintJacobianWRTStateSparsity@Constraint@optimalcontrol@iDynTree@@UEAA_NAEAVSparsityStructure@23@@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Constraint::constraintJacobianWRTControlSparsity(class iDynTree::optimalcontrol::SparsityStructure &)" (?constraintJacobianWRTControlSparsity@Constraint@optimalcontrol@iDynTree@@UEAA_NAEAVSparsityStructure@23@@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Constraint::constraintSecondPartialDerivativeWRTState(double,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &,class iDynTree::MatrixDynSize &)" (?constraintSecondPartialDerivativeWRTState@Constraint@optimalcontrol@iDynTree@@UEAA_NNAEBVVectorDynSize@3@00AEAVMatrixDynSize@3@@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Constraint::constraintSecondPartialDerivativeWRTControl(double,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &,class iDynTree::MatrixDynSize &)" (?constraintSecondPartialDerivativeWRTControl@Constraint@optimalcontrol@iDynTree@@UEAA_NNAEBVVectorDynSize@3@00AEAVMatrixDynSize@3@@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Constraint::constraintSecondPartialDerivativeWRTStateControl(double,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &,class iDynTree::MatrixDynSize &)" (?constraintSecondPartialDerivativeWRTStateControl@Constraint@optimalcontrol@iDynTree@@UEAA_NNAEBVVectorDynSize@3@00AEAVMatrixDynSize@3@@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Constraint::constraintSecondPartialDerivativeWRTStateSparsity(class iDynTree::optimalcontrol::SparsityStructure &)" (?constraintSecondPartialDerivativeWRTStateSparsity@Constraint@optimalcontrol@iDynTree@@UEAA_NAEAVSparsityStructure@23@@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Constraint::constraintSecondPartialDerivativeWRTStateControlSparsity(class iDynTree::optimalcontrol::SparsityStructure &)" (?constraintSecondPartialDerivativeWRTStateControlSparsity@Constraint@optimalcontrol@iDynTree@@UEAA_NAEAVSparsityStructure@23@@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Constraint::constraintSecondPartialDerivativeWRTControlSparsity(class iDynTree::optimalcontrol::SparsityStructure &)" (?constraintSecondPartialDerivativeWRTControlSparsity@Constraint@optimalcontrol@iDynTree@@UEAA_NAEAVSparsityStructure@23@@Z)
2>UnicycleOptimization.obj : error LNK2019: unresolved external symbol "public: __cdecl iDynTree::optimalcontrol::Cost::Cost(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0Cost@optimalcontrol@iDynTree@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function "void __cdecl std::_Construct_in_place<class UnicycleCost>(class UnicycleCost &)" (??$_Construct_in_place@VUnicycleCost@@$$V@std@@YAXAEAVUnicycleCost@@@Z)
2>UnicycleOptimization.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl iDynTree::optimalcontrol::Cost::~Cost(void)" (??1Cost@optimalcontrol@iDynTree@@UEAA@XZ) referenced in function "public: virtual void * __cdecl UnicycleCost::`scalar deleting destructor'(unsigned int)" (??_GUnicycleCost@@UEAAPEAXI@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Cost::costFirstPartialDerivativeWRTState(double,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize &)" (?costFirstPartialDerivativeWRTState@Cost@optimalcontrol@iDynTree@@UEAA_NNAEBVVectorDynSize@3@0AEAV43@@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Cost::costFirstPartialDerivativeWRTControl(double,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize &)" (?costFirstPartialDerivativeWRTControl@Cost@optimalcontrol@iDynTree@@UEAA_NNAEBVVectorDynSize@3@0AEAV43@@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Cost::costSecondPartialDerivativeWRTState(double,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &,class iDynTree::MatrixDynSize &)" (?costSecondPartialDerivativeWRTState@Cost@optimalcontrol@iDynTree@@UEAA_NNAEBVVectorDynSize@3@0AEAVMatrixDynSize@3@@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Cost::costSecondPartialDerivativeWRTControl(double,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &,class iDynTree::MatrixDynSize &)" (?costSecondPartialDerivativeWRTControl@Cost@optimalcontrol@iDynTree@@UEAA_NNAEBVVectorDynSize@3@0AEAVMatrixDynSize@3@@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Cost::costSecondPartialDerivativeWRTStateControl(double,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &,class iDynTree::MatrixDynSize &)" (?costSecondPartialDerivativeWRTStateControl@Cost@optimalcontrol@iDynTree@@UEAA_NNAEBVVectorDynSize@3@0AEAVMatrixDynSize@3@@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Cost::costSecondPartialDerivativeWRTStateSparsity(class iDynTree::optimalcontrol::SparsityStructure &)" (?costSecondPartialDerivativeWRTStateSparsity@Cost@optimalcontrol@iDynTree@@UEAA_NAEAVSparsityStructure@23@@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Cost::costSecondPartialDerivativeWRTStateControlSparsity(class iDynTree::optimalcontrol::SparsityStructure &)" (?costSecondPartialDerivativeWRTStateControlSparsity@Cost@optimalcontrol@iDynTree@@UEAA_NAEAVSparsityStructure@23@@Z)
2>UnicycleOptimization.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl iDynTree::optimalcontrol::Cost::costSecondPartialDerivativeWRTControlSparsity(class iDynTree::optimalcontrol::SparsityStructure &)" (?costSecondPartialDerivativeWRTControlSparsity@Cost@optimalcontrol@iDynTree@@UEAA_NAEAVSparsityStructure@23@@Z)
2>UnicycleOptimization.obj : error LNK2019: unresolved external symbol "public: __cdecl iDynTree::optimalcontrol::OptimalControlProblem::OptimalControlProblem(void)" (??0OptimalControlProblem@optimalcontrol@iDynTree@@QEAA@XZ) referenced in function "public: __cdecl UnicycleOptimization::UnicycleOptimization(void)" (??0UnicycleOptimization@@QEAA@XZ)
2>UnicycleOptimization.obj : error LNK2019: unresolved external symbol "public: bool __cdecl iDynTree::optimalcontrol::OptimalControlProblem::addConstraint(class std::shared_ptr<class iDynTree::optimalcontrol::Constraint>)" (?addConstraint@OptimalControlProblem@optimalcontrol@iDynTree@@QEAA_NV?$shared_ptr@VConstraint@optimalcontrol@iDynTree@@@std@@@Z) referenced in function "public: bool __cdecl iDynTree::optimalcontrol::OptimalControlProblem::addContraint(class std::shared_ptr<class iDynTree::optimalcontrol::Constraint>)" (?addContraint@OptimalControlProblem@optimalcontrol@iDynTree@@QEAA_NV?$shared_ptr@VConstraint@optimalcontrol@iDynTree@@@std@@@Z)
2>UnicycleOptimization.obj : error LNK2019: unresolved external symbol "public: bool __cdecl iDynTree::optimalcontrol::OptimalControlProblem::addLagrangeTerm(double,class std::shared_ptr<class iDynTree::optimalcontrol::Cost>)" (?addLagrangeTerm@OptimalControlProblem@optimalcontrol@iDynTree@@QEAA_NNV?$shared_ptr@VCost@optimalcontrol@iDynTree@@@std@@@Z) referenced in function "public: __cdecl UnicycleOptimization::UnicycleOptimization(void)" (??0UnicycleOptimization@@QEAA@XZ)
2>UnicycleOptimization.obj : error LNK2019: unresolved external symbol "public: bool __cdecl iDynTree::optimalcontrol::OptimalControlProblem::costsEvaluation(double,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &,double &)" (?costsEvaluation@OptimalControlProblem@optimalcontrol@iDynTree@@QEAA_NNAEBVVectorDynSize@3@0AEAN@Z) referenced in function "public: bool __cdecl UnicycleOptimization::getCostValue(class iDynTree::VectorFixSize<2> const &,double,double,double &)" (?getCostValue@UnicycleOptimization@@QEAA_NAEBV?$VectorFixSize@$01@iDynTree@@NNAEAN@Z)
2>UnicycleOptimization.obj : error LNK2019: unresolved external symbol "public: bool __cdecl iDynTree::optimalcontrol::OptimalControlProblem::isFeasiblePoint(double,class iDynTree::VectorDynSize const &,class iDynTree::VectorDynSize const &)" (?isFeasiblePoint@OptimalControlProblem@optimalcontrol@iDynTree@@QEAA_NNAEBVVectorDynSize@3@0@Z) referenced in function "public: bool __cdecl UnicycleOptimization::areConstraintsSatisfied(class iDynTree::VectorFixSize<2> const &,double,double)" (?areConstraintsSatisfied@UnicycleOptimization@@QEAA_NAEBV?$VectorFixSize@$01@iDynTree@@NN@Z)
2>C:\Users\gromualdi\robot-code\robotology-superbuild\build\robotology\UnicyclePlanner\bin\RelWithDebInfo\UnicyclePlanner.dll : fatal error LNK1120: 57 unresolved externals
2>Done building project "UnicyclePlanner.vcxproj" -- FAILED.
3>------ Build started: Project: ALL_BUILD, Configuration: RelWithDebInfo x64 ------

This is strange. Since the iDynTree OptimalControlProblem library is not used by the planner.

@traversaro @S-Dafarra

@S-Dafarra
Copy link
Collaborator

It depends on RK4 which is part of the opimal control library.

@GiulioRomualdi
Copy link
Member Author

The problem is solved updating the main iDynTree CMakeLists.txt as follows

$ git diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f2495d51..82f1526e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -68,6 +68,9 @@ if(NOT IDYNTREE_ONLY_DOCS)
         list(APPEND _IDYNTREE_EXPORTED_DEPENDENCIES orocos_kdl)
     endif()

+    list(APPEND _IDYNTREE_EXPORTED_DEPENDENCIES OsqpEigen)
+    list(APPEND _IDYNTREE_EXPORTED_DEPENDENCIES osqp)
+
     include(InstallBasicPackageFiles)
     install_basic_package_files(iDynTree VARS_PREFIX ${VARS_PREFIX}
                                          VERSION ${${VARS_PREFIX}_VERSION}

I think this is only a workaround. Waiting for @traversaro, for more hints

@traversaro
Copy link
Member

The issue is the following: osqp::osqp and OsqpEigen::OsqpEigen are private dependencies (see https://github.com/robotology/idyntree/blob/4162113a72e3d247fe39a2c607ebbf46929e02a2/src/optimalcontrol/CMakeLists.txt#L86), so they do not need to be known to downstream projects if iDynTree is compiled as shared library, but they are instead necessary if iDynTree is compiled as static. Unfortunately iDynTree by default on Windows is still compiled as static, that this trigger this error, differently from Linux.
There are two necessary fix:

  • Add list(APPEND _IDYNTREE_EXPORTED_DEPENDENCIES OsqpEigen) and list(APPEND _IDYNTREE_EXPORTED_DEPENDENCIES osqp) as per @GiulioRomualdi workaround, only if iDynTree is compiled as static library, and if IDYNTREE_USES_OSQP is enabled.
  • Make sure that iDynTree on Windows is compiled by default as shared library.

@traversaro
Copy link
Member

(Note that this happens only if iDynTree is compiled with IDYNTREE_USES_OSQP, and I think this is the reason why I did not experienced this issue in the past).

@traversaro
Copy link
Member

Hotfix for the problem provided in robotology/idyntree#642 .

@S-Dafarra
Copy link
Collaborator

I think we can close this issue then as it is not a problem of the UnicyclePlanner and the corresponding issues in iDynTree have been opened.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants