robotology-playground / WBI-Toolbox

Simulink Toolbox for rapid prototyping of Whole Body Robot Controllers
2 stars 2 forks source link

superbuild compile error from eigen 3.2 dependencies #80

Closed rlober closed 9 years ago

rlober commented 9 years ago

Hey,

So I tried to compile superbuild with:

CODYCO_USES_EIGEN320  =  OFF
CODYCO_USES_WBI_TOOLBOX  =  ON
CODYCO_USES_WBI_TOOLBOX_CONTROLLERS  =  ON

When I go to compile I get errors related to Eigen Ref not being found, but the cmake flag should prevent Eigen 3.2 dependent functionality from being built. The output is below:

Linking CXX shared library ySynchronizer.mexa64
In file included from /home/ryan/Code/iCub_Software/codyco-superbuild/main/WBIToolbox/libraries/wbInterface/src/wbInterface.cpp:23:0:
/home/ryan/Code/iCub_Software/codyco-superbuild/main/WBIToolbox/libraries/wbInterface/include/wbInterface.h:227:48: error: ‘Eigen::Ref’ has not been declared
/home/ryan/Code/iCub_Software/codyco-superbuild/main/WBIToolbox/libraries/wbInterface/include/wbInterface.h:227:51: error: expected ‘,’ or ‘...’ before ‘<’ token
[100%] Built target ySynchronizer
Linking CXX shared library yWrite.mexa64
[100%] Built target yWrite
/home/ryan/Code/iCub_Software/codyco-superbuild/main/WBIToolbox/libraries/wbInterface/src/wbInterface.cpp:731:42: error: ‘bool robotStatus::getJointLimits’ is not a static member of ‘class robotStatus’
/home/ryan/Code/iCub_Software/codyco-superbuild/main/WBIToolbox/libraries/wbInterface/src/wbInterface.cpp:731:35: error: ‘Ref’ is not a member of ‘Eigen’
/home/ryan/Code/iCub_Software/codyco-superbuild/main/WBIToolbox/libraries/wbInterface/src/wbInterface.cpp:731:61: error: expected primary-expression before ‘>’ token
/home/ryan/Code/iCub_Software/codyco-superbuild/main/WBIToolbox/libraries/wbInterface/src/wbInterface.cpp:731:63: error: ‘minLimits’ was not declared in this scope
/home/ryan/Code/iCub_Software/codyco-superbuild/main/WBIToolbox/libraries/wbInterface/src/wbInterface.cpp:731:74: error: ‘Ref’ is not a member of ‘Eigen’
/home/ryan/Code/iCub_Software/codyco-superbuild/main/WBIToolbox/libraries/wbInterface/src/wbInterface.cpp:731:100: error: expected primary-expression before ‘>’ token
/home/ryan/Code/iCub_Software/codyco-superbuild/main/WBIToolbox/libraries/wbInterface/src/wbInterface.cpp:731:102: error: ‘maxLimits’ was not declared in this scope
/home/ryan/Code/iCub_Software/codyco-superbuild/main/WBIToolbox/libraries/wbInterface/src/wbInterface.cpp:731:111: error: expression list treated as compound expression in initializer [-fpermissive]
/home/ryan/Code/iCub_Software/codyco-superbuild/main/WBIToolbox/libraries/wbInterface/src/wbInterface.cpp:731:113: error: expected ‘,’ or ‘;’ before ‘{’ token
/home/ryan/Code/iCub_Software/codyco-superbuild/main/WBIToolbox/libraries/wbInterface/src/wbInterface.cpp: In function ‘void mdlOutputs(SimStruct*, int_T)’:
/home/ryan/Code/iCub_Software/codyco-superbuild/main/WBIToolbox/libraries/wbInterface/src/wbInterface.cpp:1561:56: error: no matching function for call to ‘robotStatus::getJointLimits(Eigen::Map<Eigen::Matrix<double, -0x00000000000000001, 1>, 0, Eigen::Stride<0, 0> >&, Eigen::Map<Eigen::Matrix<double, -0x00000000000000001, 1>, 0, Eigen::Stride<0, 0> >&)’
/home/ryan/Code/iCub_Software/codyco-superbuild/main/WBIToolbox/libraries/wbInterface/src/wbInterface.cpp:1561:56: note: candidate is:
/home/ryan/Code/iCub_Software/codyco-superbuild/main/WBIToolbox/libraries/wbInterface/include/wbInterface.h:227:25: note: bool robotStatus::getJointLimits(int)
/home/ryan/Code/iCub_Software/codyco-superbuild/main/WBIToolbox/libraries/wbInterface/include/wbInterface.h:227:25: note:   candidate expects 1 argument, 2 provided
Linking CXX shared library yRead.mexa64
[100%] Built target yRead
make[5]: *** [libraries/wbInterface/CMakeFiles/robotState.dir/src/wbInterface.cpp.o] Error 1
make[4]: *** [libraries/wbInterface/CMakeFiles/robotState.dir/all] Error 2
make[4]: *** Waiting for unfinished jobs....
Linking CXX shared library minJerkGenerator.mexa64
[100%] Built target minJerkGenerator
make[3]: *** [all] Error 2
make[2]: *** [main/WBIToolbox/CMakeFiles/YCMStamp/WBIToolbox-build] Error 2
make[1]: *** [CMakeFiles/WBIToolbox.dir/all] Error 2
make: *** [all] Error 2
traversaro commented 9 years ago

Can you try the branch fixEigen305? It should fix this issue.