Arm Cross-Compile ikfastsolvers.cpp error

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Arm Cross-Compile ikfastsolvers.cpp error

MattTaylor
Hi Guys,

I'm building OpenRAVE for a Tegra 2 processor. I have previously built the Boost libraries from source.

The compile for OR gets quite a ways through before hitting an error below;

[ 77%] Built target grasper
Scanning dependencies of target ikfastsolvers
[ 77%] Building CXX object plugins/ikfastsolvers/CMakeFiles/ikfastsolvers.dir/ikfastsolvers.cpp.o
[ 78%] Building CXX object plugins/ikfastsolvers/CMakeFiles/ikfastsolvers.dir/ikfastmodule.cpp.o
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:82:39: error: ‘numeric’ in namespace ‘boost’ does not name a type
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:82:60: error: expected unqualified-id before ‘::’ token
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:82:60: error: expected ‘)’ before ‘::’ token
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:82:55: error: expected ‘;’ at end of member declaration
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:82:60: error: ‘permutation_matrix’ in namespace ‘::’ does not name a type
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:95:38: error: ‘boost::numeric’ has not been declared
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:95:60: error: expected ‘,’ or ‘...’ before ‘<’ token
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp: In static member function ‘static OpenRAVE::dReal IkFastModule::determinant(int)’:
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:96:16: error: ‘boost::numeric’ has not been declared
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:96:62: error: expected primary-expression before ‘>’ token
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:96:67: error: ‘m’ was not declared in this scope
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:96:76: error: ‘pm’ was not declared in this scope
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:98:20: error: ‘boost::numeric’ has not been declared
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp: In member function ‘bool IkFastModule::DebugIK(std::ostream&, std::istream&)’:
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:782:32: error: ‘numeric’ is not a namespace-name
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:782:39: error: expected namespace-name before ‘;’ token
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:892:16: error: ‘boost::numeric’ has not been declared
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:892:44: error: expected primary-expression before ‘>’ token
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:892:46: error: ‘J’ was not declared in this scope
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:892:49: error: ‘Jt’ was not declared in this scope
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:892:53: error: ‘JJt’ was not declared in this scope
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:893:9: error: ‘ublas’ has not been declared
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:893:28: error: expected primary-expression before ‘,’ token
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:893:37: error: ‘boost::numeric’ has not been declared
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:893:74: error: ‘U’ was not declared in this scope
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:893:83: error: ‘Vt’ was not declared in this scope
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:894:9: error: ‘ublas’ has not been declared
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:894:28: error: expected primary-expression before ‘>’ token
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:894:33: error: ‘S’ was not declared in this scope
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:985:26: error: ‘ublas’ has not been declared
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/ikfastmodule.cpp:986:27: error: ‘ublas’ has not been declared
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/plugindefs.h: At global scope:
/home/matt/git_repos/open_rave/openrave/plugins/ikfastsolvers/plugindefs.h:68:20: warning: ‘g_fEpsilonJointLimit’ defined but not used [-Wunused-variable]
make[2]: *** [plugins/ikfastsolvers/CMakeFiles/ikfastsolvers.dir/ikfastmodule.cpp.o] Error 1
make[1]: *** [plugins/ikfastsolvers/CMakeFiles/ikfastsolvers.dir/all] Error 2
make: *** [all] Error 2



I'm not sure if this is a problem with my Boost build, or ikfastsolvers.cpp


Commenting out this #ifdef makes it work:


#include "plugindefs.h"
#include <boost/algorithm/string.hpp>
#include <boost/lexical_cast.hpp>

//#ifdef Boost_IOSTREAMS_FOUND   <--------------------------------------------------- HERE
#include <boost/iostreams/device/file_descriptor.hpp>
#include <boost/iostreams/stream.hpp>
#include <boost/version.hpp>

// used for inverse jacobian computation
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/vector_proxy.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/triangular.hpp>
#include <boost/numeric/ublas/lu.hpp>
#include <boost/numeric/ublas/io.hpp>


#if BOOST_VERSION >= 104400
#define FILE_DESCRIPTOR_FLAG boost::iostreams::never_close_handle
#else
#define FILE_DESCRIPTOR_FLAG false
#endif
//#endif  <----------------------------------------------------------------------------- HERE

#include <errno.h>
#include <stdio.h>
#include <stdlib.h>


This hack seemed to work, and the build succeeded. I'll keep you posted as to whether OpenRAVE actually works on the Tegra2

- Matt