ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Error building nodelet under osx Lion

asked 2011-12-04 20:53:15 -0500

LucaGhera gravatar image

updated 2012-02-24 14:18:15 -0500

Kevin gravatar image

Hi,

I'm trying to install the Openni_camera stak in Osx Lion. Unfortunately I have a problem building nodelet. Please find below the log.

It seems to be a problem of dependency with tinyxml:

Lucas-MacBook-Pro:nodelet luca$ rosmake --rosdep-install
[ rosmake ] No package specified.  Building ['nodelet']                                                             
[ rosmake ] Packages requested are: ['nodelet']                                                                     
[ rosmake ] Logging to directory/Users/luca/.ros/rosmake/rosmake_output-20111205-115042                             
[ rosmake ] Expanded args ['nodelet'] to:
['nodelet']                                                               
[ rosmake ] Generating Install Script using rosdep then executing. This may take a minute, you will be prompted for permissions. . .
Failed to find rosdep tinyxml for package nodelet on OS:osx version:lion
[ rosmake ] rosdep install failed: Rosdep install failed

However tinyxml is installed through MacPort.

Is there a known solution? Thanks.

This is the log of rosmake nodelet (compiled with clang):

mkdir -p bin
cd build && cmake -Wdev -DCMAKE_TOOLCHAIN_FILE=`rospack find rosbuild`/rostoolchain.cmake  ..
[rosbuild] Building package nodelet
[rosbuild] Including /Users/luca/Software/ros/electric/ros_comm/clients/roslisp/cmake/roslisp.cmake
[rosbuild] Including /Users/luca/Software/ros/electric/ros_comm/clients/rospy/cmake/rospy.cmake
[rosbuild] Including /Users/luca/Software/ros/electric/ros_comm/clients/cpp/roscpp/cmake/roscpp.cmake
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_TOOLCHAIN_FILE


-- Build files have been written to: /Users/luca/Software/ros/electric/nodelet_core/nodelet/build
cd build && make -l8
[  0%] Built target rospack_genmsg_libexe
[  0%] Built target rosbuild_premsgsrvgen
[ 20%] Built target ROSBUILD_gensrv_cpp
[ 40%] Built target ROSBUILD_gensrv_lisp
[ 66%] Built target ROSBUILD_gensrv_py
[ 66%] Built target rospack_gensrv
[ 66%] Built target rosbuild_precompile
[ 73%] Building CXX object CMakeFiles/nodeletlib.dir/src/loader.o
In file included from /Users/luca/Software/ros/electric/nodelet_core/nodelet/src/loader.cpp:30:
In file included from /Users/luca/Software/ros/electric/nodelet_core/nodelet/include/nodelet/loader.h:43:
/Users/luca/Software/ros/electric/bond_core/bondcpp/include/bondcpp/bond.h:172:1: warning: 'BondSM' defined as a struct here but previously declared as a class [-Wmismatched-tags]
struct BondSM
^
/Users/luca/Software/ros/electric/bond_core/bondcpp/include/BondSM_sm.h:25:1: note: did you mean struct here?
class BondSM;
^~~~~
struct
In file included from /Users/luca/Software/ros/electric/nodelet_core/nodelet/src/loader.cpp:32:
/Users/luca/Software/ros/electric/nodelet_core/nodelet/include/nodelet/detail/callback_queue_manager.h:76:3: warning: class 'ThreadInfo' was previously declared as a struct [-Wmismatched-tags]
  class ThreadInfo;
  ^
/Users/luca/Software/ros/electric/nodelet_core/nodelet/include/nodelet/detail/callback_queue_manager.h:73:10: note: previous use is here
  struct ThreadInfo;
         ^
/Users/luca/Software/ros/electric/nodelet_core/nodelet/include/nodelet/detail/callback_queue_manager.h:109:3: warning: 'ThreadInfo' defined as a struct here but previously declared as a class [-Wmismatched-tags]
  struct ThreadInfo
  ^
/Users/luca/Software/ros/electric/nodelet_core/nodelet/include/nodelet/detail/callback_queue_manager.h:76:3: note: did you mean struct here?
  class ThreadInfo;
  ^~~~~
  struct
In file included from /Users/luca/Software/ros/electric/nodelet_core/nodelet/src/loader.cpp:33:
In file included from /Users/luca/Software/ros/electric/pluginlib/include/pluginlib/class_loader.h:237:
/Users/luca/Software/ros/electric/pluginlib/include/pluginlib/class_loader_imp.h:62:16: error: no matching member function for call to ...
(more)
edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
1

answered 2011-12-05 12:01:26 -0500

Kevin gravatar image

If you are not married to Macports, William Woodall has also done a lot of good work getting ROS up and running using Homebrew. This is how I installed ROS on Lion and it was pretty painless.

However, having said that, I have not gotten OpenNI.org drivers working on OSX. I have gotten the freenectlib ones to work.

edit flag offensive delete link more
1

answered 2011-12-06 09:08:50 -0500

William gravatar image

I am not sure what the issue here is, it might be because you appear to be using clang++. Perhaps try using llvm-g++ instead. If that doesn't work, file a ticket.

edit flag offensive delete link more

Comments

@William I tried, still error. Please see the log in the edited question.
LucaGhera gravatar image LucaGhera  ( 2011-12-08 04:17:17 -0500 )edit
1

answered 2011-12-21 15:36:54 -0500

Paul Vernaza gravatar image

updated 2011-12-21 15:37:27 -0500

I encountered this problem elsewhere, and I think this is due to a bug in pluginlib. In that package's include/class_loader.h, after

#define PLUGINLIB_CLASS_LOADER_H

try adding

#define TIXML_USE_STL

edit flag offensive delete link more

Comments

This worked for me when compiling on Angstrom (embedded Linux).

NStiurca gravatar image NStiurca  ( 2013-02-11 13:22:43 -0500 )edit

Question Tools

Stats

Asked: 2011-12-04 20:53:15 -0500

Seen: 644 times

Last updated: Dec 21 '11