Install ROS from source Ubuntu 14.04

asked 2014-10-09 08:34:43 -0500

fabbro gravatar image

Hi to everyone,

I am quite new with ROS and in the community.

I am trying to install ROS Indigo from source as described here : http://wiki.ros.org/indigo/Installati...

But I arrive until the step 2.1.3 Building the catkin workspace and I am stuck with the following problem:

==> Processing catkin package: 'rospack'
==> Building with env: '/home/fschiano/ros_matlab_ws/install_isolated/env.sh'
Makefile exists, skipping explicit cmake invocation...
==> make cmake_check_build_system in '/home/fschiano/ros_matlab_ws/build_isolated/rospack'
==> make -j4 -l4 in '/home/fschiano/ros_matlab_ws/build_isolated/rospack'
[ 66%] Built target rospack
Linking CXX executable /home/fschiano/ros_matlab_ws/devel_isolated/rospack/bin/rospack
Linking CXX executable /home/fschiano/ros_matlab_ws/devel_isolated/rospack/bin/rosstack
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::detail::current_path(boost::system::error_code*)'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::path::m_append_separator_if_needed()'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::detail::directory_iterator_increment(boost::filesystem3::directory_iterator&, boost::system::error_code*)'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::detail::directory_iterator_construct(boost::filesystem3::directory_iterator&, boost::filesystem3::path const&, boost::system::error_code*)'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::detail::create_directory(boost::filesystem3::path const&, boost::system::error_code*)'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::detail::dir_itr_close(void*&, void*&)'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::path::wchar_t_codecvt_facet()'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::path::filename() const'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::detail::status(boost::filesystem3::path const&, boost::system::error_code*)'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::path::operator/=(boost::filesystem3::path const&)'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::path::parent_path() const'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::path::m_erase_redundant_separator(unsigned long)'
collect2: error: ld returned 1 exit status
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::detail::current_path(boost::system::error_code*)'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::path::m_append_separator_if_needed()'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::detail::directory_iterator_increment(boost::filesystem3::directory_iterator&, boost::system::error_code*)'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::detail::directory_iterator_construct(boost::filesystem3::directory_iterator&, boost::filesystem3::path const&, boost::system::error_code*)'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::detail::create_directory(boost::filesystem3::path const&, boost::system::error_code*)'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::detailmake[2]: ::dir_itr_close(void*** [/home/fschiano/ros_matlab_ws/devel_isolated/rospack/bin/rosstack] Error 1*&, 
void*&)'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::path::wchar_t_codecvt_facet()'
/home/fschiano/ros_matlab_ws/devel_isolated/rospack/lib/librospack.so: undefined reference to `boost::filesystem3::path::filename ...
(more)
edit retag flag offensive close merge delete

Comments

Just to get it out of the way: you're sure you need to build from source? Trusty is a supported platform, so you could just install the precompiled binaries.

gvdhoorn gravatar imagegvdhoorn ( 2014-10-09 09:27:47 -0500 )edit

problem is that MATLAB doesn't use the system distribution of boost but instead comes with its own shipped version, which can be found in, e.g.'matlabroot/bin/glnxa64/'. Since the mex files that we generate will run inside matlab it is important that they are linked against the same version ofboost

fabbro gravatar imagefabbro ( 2014-10-09 10:18:27 -0500 )edit

that is used in MATLAB. Moreover, since the mex files will also be linked to ROS libraries, we also need to recompile ROS and link it to the same version of boost. Finally we also need to compile everyting (boost, ros and our mex files) using a c/c++ compiler officially supported by the MATLAB

fabbro gravatar imagefabbro ( 2014-10-09 10:18:32 -0500 )edit

distribution that we are using.

fabbro gravatar imagefabbro ( 2014-10-09 10:19:07 -0500 )edit

Well in that case it looks like the Boost version Matlab shipped with does not contain the necessary symbols. Or at least the linker cannot find them.

Just in case: you know about the Mathworks ROS support?

gvdhoorn gravatar imagegvdhoorn ( 2014-10-09 10:38:35 -0500 )edit

Yeah I knew about it but I need to solve this problem because I want something different. In particular I am trying to get into this: http://wiki.ros.org/vrep_ros_bridge

fabbro gravatar imagefabbro ( 2014-10-09 11:12:50 -0500 )edit

Ouch. Are you sure ROS finds matlab's Boost version? You can check manually whether the symbols are there with nm /path/to/lib | grep YOUR_SYMBOL.

As to the Simulink blocks: I would've used rosbridge or similar. That would've avoided these kind of problems. But perhaps have introduced others.

gvdhoorn gravatar imagegvdhoorn ( 2014-10-09 12:30:20 -0500 )edit

What do you mean with YOUR_SYMBOL?

fabbro gravatar imagefabbro ( 2014-10-09 13:39:01 -0500 )edit