hi Kevin, On Fri, Sep 2, 2011 at 8:06 AM, Kevin Walchko wrote: > I am having problems compiling nodelet. > ROS electric, OSX Lion 10.7 using macports and default compiler > I had to define STL use in loader.cpp, otherwise the macports of tinyXML > didn't make certain class members available: > #define TIXML_USE_STL > is there a way to define this in CMakeLists.txt? Did the tinyxml source rosdep not work for you? `rosdep install nodelet` should build and install an appropriately configured version of tinyxml from https://kforge.ros.org/rosrelease/sourcedeps/tinyxml. I wrote that because I was having the same trouble you are (and more, as I recall) with using the macports version of tinyxml. > I am getting this error, but not sure why. I am assuming I have to add > something to CMakeLists.txt to make the headers from include/nodelet > available, but adding include(${PROJECT_SOURCE_DIR}/include/nodelet) didn't > help. > > [ 66%] Built target rosbuild_precompile > Linking CXX shared library ../lib/libnodeletlib.dylib > Undefined symbols for architecture x86_64: Not sure what's going on there. I was just able to build nodelet on my 10.6 machine (and I'm about to add it to the electric-devel builds so that it keeps working). brian. >   "nodelet::UninitializedException::~UninitializedException()", referenced > from: >       nodelet::Nodelet::getMTPrivateNodeHandle() constin nodelet_class.o >       nodelet::Nodelet::getMTNodeHandle() constin nodelet_class.o >       nodelet::Nodelet::getPrivateNodeHandle() constin nodelet_class.o >       nodelet::Nodelet::getNodeHandle() constin nodelet_class.o >       nodelet::Nodelet::getMTCallbackQueue() constin nodelet_class.o >       nodelet::Nodelet::getSTCallbackQueue() constin nodelet_class.o >       vtable for nodelet::UninitializedExceptionin nodelet_class.o >       ... >   "boost::shared_ptr::operator*() const", referenced from: >       nodelet::Nodelet::getMTPrivateNodeHandle() constin nodelet_class.o >       nodelet::Nodelet::getMTNodeHandle() constin nodelet_class.o >       nodelet::Nodelet::getPrivateNodeHandle() constin nodelet_class.o >       nodelet::Nodelet::getNodeHandle() constin nodelet_class.o >   "boost::shared_ptr::operator*() const", > referenced from: >       nodelet::Nodelet::getMTCallbackQueue() constin nodelet_class.o >       nodelet::Nodelet::getSTCallbackQueue() constin nodelet_class.o >   "boost::shared_ptr::reset()", referenced from: >       nodelet::Nodelet::~Nodelet()in nodelet_class.o >       nodelet::Nodelet::~Nodelet()in nodelet_class.o >   "boost::shared_ptr::~shared_ptr()", referenced from: >       nodelet::Nodelet::~Nodelet()in nodelet_class.o >       nodelet::Nodelet::~Nodelet()in nodelet_class.o >   "boost::shared_ptr::~shared_ptr()", referenced from: >       nodelet::Nodelet::~Nodelet()in nodelet_class.o >       nodelet::Nodelet::~Nodelet()in nodelet_class.o >       nodelet::Nodelet::Nodelet()in nodelet_class.o >   "boost::shared_ptr::~shared_ptr()", > referenced from: >       nodelet::Nodelet::~Nodelet()in nodelet_class.o >       nodelet::Nodelet::~Nodelet()in nodelet_class.o >       nodelet::Nodelet::Nodelet()in nodelet_class.o > > nodelet::detail::CallbackQueue::addCallback(boost::shared_ptr > const&, unsigned long long)in callback_queue.o >   "boost::shared_ptr::shared_ptr()", > referenced from: >       nodelet::Nodelet::Nodelet()in nodelet_class.o >       nodelet::detail::CallbackQueueManager::QueueInfo::QueueInfo()in > callback_queue_manager.o >   "boost::shared_ptr::shared_ptr()", referenced from: >       nodelet::Nodelet::Nodelet()in nodelet_class.o >   "boost::shared_ptr::shared_ptr()", referenced from: >       nodelet::Nodelet::Nodelet()in nodelet_class.o > > "nodelet::MultipleInitializationException::~MultipleInitializationException()", > referenced from: >       nodelet::Nodelet::init(std::basic_string, > std::allocator > const&, std::map std::char_traits, std::allocator >, std::basic_string std::char_traits, std::allocator >, > std::less, > std::allocator > >, std::allocator std::char_traits, std::allocator > const, > std::basic_string, std::allocator > > > > > const&, std::vector, > std::allocator >, std::allocator std::char_traits, std::allocator > > > const&, > nodelet::detail::CallbackQueueManager*, boost::shared_ptr)in > nodelet_class.o >       vtable for nodelet::MultipleInitializationExceptionin nodelet_class.o >   "boost::shared_ptr::operator=(boost::shared_ptr > const&)", referenced from: >       nodelet::Nodelet::init(std::basic_string, > std::allocator > const&, std::map std::char_traits, std::allocator >, std::basic_string std::char_traits, std::allocator >, > std::less, > std::allocator > >, std::allocator std::char_traits, std::allocator > const, > std::basic_string, std::allocator > > > > > const&, std::vector, > std::allocator >, std::allocator std::char_traits, std::allocator > > > const&, > nodelet::detail::CallbackQueueManager*, boost::shared_ptr)in > nodelet_class.o >   "void > boost::shared_ptr::reset(nodelet::detail::CallbackQueue*)", > referenced from: >       nodelet::Nodelet::init(std::basic_string, > std::allocator > const&, std::map std::char_traits, std::allocator >, std::basic_string std::char_traits, std::allocator >, > std::less, > std::allocator > >, std::allocator std::char_traits, std::allocator > const, > std::basic_string, std::allocator > > > > > const&, std::vector, > std::allocator >, std::allocator std::char_traits, std::allocator > > > const&, > nodelet::detail::CallbackQueueManager*, boost::shared_ptr)in > nodelet_class.o >   "void > boost::shared_ptr::reset(ros::NodeHandle*)", > referenced from: >       nodelet::Nodelet::init(std::basic_string, > std::allocator > const&, std::map std::char_traits, std::allocator >, std::basic_string std::char_traits, std::allocator >, > std::less, > std::allocator > >, std::allocator std::char_traits, std::allocator > const, > std::basic_string, std::allocator > > > > > const&, std::vector, > std::allocator >, std::allocator std::char_traits, std::allocator > > > const&, > nodelet::detail::CallbackQueueManager*, boost::shared_ptr)in > nodelet_class.o >   "boost::shared_ptr::get() const", > referenced from: >       nodelet::Nodelet::init(std::basic_string, > std::allocator > const&, std::map std::char_traits, std::allocator >, std::basic_string std::char_traits, std::allocator >, > std::less, > std::allocator > >, std::allocator std::char_traits, std::allocator > const, > std::basic_string, std::allocator > > > > > const&, std::vector, > std::allocator >, std::allocator std::char_traits, std::allocator > > > const&, > nodelet::detail::CallbackQueueManager*, boost::shared_ptr)in > nodelet_class.o >   "boost::shared_ptr::operator->() const", referenced from: >       nodelet::Nodelet::init(std::basic_string, > std::allocator > const&, std::map std::char_traits, std::allocator >, std::basic_string std::char_traits, std::allocator >, > std::less, > std::allocator > >, std::allocator std::char_traits, std::allocator > const, > std::basic_string, std::allocator > > > > > const&, std::vector, > std::allocator >, std::allocator std::char_traits, std::allocator > > > const&, > nodelet::detail::CallbackQueueManager*, boost::shared_ptr)in > nodelet_class.o > > "nodelet::MultipleInitializationException::~MultipleInitializationException()", > referenced from: >       vtable for nodelet::MultipleInitializationExceptionin nodelet_class.o >   "nodelet::UninitializedException::~UninitializedException()", referenced > from: >       vtable for nodelet::UninitializedExceptionin nodelet_class.o >   "ros::WallDuration::~WallDuration()", referenced from: >       nodelet::detail::CallbackQueue::callOne()    in callback_queue.o > > "boost::enable_shared_from_this::shared_from_this()", > referenced from: > > nodelet::detail::CallbackQueue::addCallback(boost::shared_ptr > const&, unsigned long long)in callback_queue.o > > "boost::enable_shared_from_this::~enable_shared_from_this()", > referenced from: >       nodelet::detail::CallbackQueue::~CallbackQueue()in callback_queue.o >       nodelet::detail::CallbackQueue::~CallbackQueue()in callback_queue.o > > nodelet::detail::CallbackQueue::CallbackQueue(nodelet::detail::CallbackQueueManager*)in > callback_queue.o >   "ros::CallbackQueueInterface::CallbackQueueInterface()", referenced from: > > nodelet::detail::CallbackQueue::CallbackQueue(nodelet::detail::CallbackQueueManager*)in > callback_queue.o > > "boost::enable_shared_from_this::enable_shared_from_this()", > referenced from: > > nodelet::detail::CallbackQueue::CallbackQueue(nodelet::detail::CallbackQueueManager*)in > callback_queue.o > > "boost::shared_ptr::shared_ptr(boost::mutex*)", > referenced from: >       nodelet::detail::CallbackQueueManager::ThreadInfo::ThreadInfo()in > callback_queue_manager.o > > "boost::shared_ptr::shared_ptr(boost::condition_variable*)", > referenced from: >       nodelet::detail::CallbackQueueManager::ThreadInfo::ThreadInfo()in > callback_queue_manager.o > ld: symbol(s) not found for architecture x86_64 > collect2: ld returned 1 exit status > make[3]: *** [../lib/libnodeletlib.dylib] Error 1 > make[2]: *** [CMakeFiles/nodeletlib.dir/all] Error 2 > make[1]: *** [all] Error 2 > make: *** [all] Error 2 > [kevin@TARDIS nodelet]$ > > _______________________________________________ > ros-users mailing list > ros-users@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users > >