It is the same. I can confirm that William's patch works for me, for compilation / linking. I didn't check that it works at runtime. --Nick On Fri, Sep 2, 2011 at 11:18 AM, William Woodall wrote: > Is this not the same as this? > > https://code.ros.org/trac/ros-pkg/ticket/5144 > > -- > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > William Woodall > Graduate Software Engineering > Auburn University > w@auburn.edu > wjwwood@gmail.com > williamjwoodall.com > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > On Fri, Sep 2, 2011 at 1:02 PM, Nicholas Butko wrote: > >> I looked into this again, after the discussion today. >> >> Going off the tip yesterday about rosconsole successfully compiling with >> the g++ legacy compiler rather than llvm-g++ current compiler, I decided to >> try compiling nodelet with /usr/bin/g++-4.2 (now the "legacy") compiler. >> >> All of the boost linking errors went away, and building was perfect. This >> was still with "TIXML_USE_STL" defined. Remove the define, and things break >> again. >> >> I'm having trouble even trying it with clang++ (experimental compiler), >> because clang++ doesn't respect LIBRARY_PATH, so it doesn't find the >> macports libraries (e.g. tinyxml) at all. >> >> --Nick >> >> >> On Fri, Sep 2, 2011 at 10:37 AM, Kevin Walchko wrote: >> >>> I don't like installing source code I can't easily remove. That is why I >>> put up with macports. >>> >>> >>> >>> >>> On Sep 2, 2011, at 12:49 PM, Brian Gerkey wrote: >>> >>> > 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::char_traits, >>> >> 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::char_traits, >>> >> 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::char_traits, >>> >> 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::char_traits, >>> >> 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::char_traits, >>> >> 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::char_traits, >>> >> 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 >>> >> >>> >> >>> > _______________________________________________ >>> > ros-users mailing list >>> > ros-users@code.ros.org >>> > https://code.ros.org/mailman/listinfo/ros-users >>> >>> _______________________________________________ >>> ros-users mailing list >>> ros-users@code.ros.org >>> https://code.ros.org/mailman/listinfo/ros-users >>> >> >> >> _______________________________________________ >> ros-users mailing list >> ros-users@code.ros.org >> https://code.ros.org/mailman/listinfo/ros-users >> >> > > _______________________________________________ > ros-users mailing list > ros-users@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users > >