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 > >