[ros-users] compile problem nodelet in OSX

Nicholas Butko nbutko at ucsd.edu
Fri Sep 2 16:58:46 UTC 2011


sorry, plginlib (in manifest.xml)


On Fri, Sep 2, 2011 at 9:58 AM, Nicholas Butko <nbutko at ucsd.edu> wrote:

> I had the same problem. The best way I found to fix it was to add
>
> -DTIXML_USE_STL
>
> to the exported cflags argument of pluginling.
> Then that problem was fixed, the program compiled, but on link I had a
> whole bunch of nasty boost errors and gave up on electric for a while.
>
> --Nick
>
> On Fri, Sep 2, 2011 at 9:49 AM, Brian Gerkey <gerkey at willowgarage.com>wrote:
>
>> hi Kevin,
>>
>> On Fri, Sep 2, 2011 at 8:06 AM, Kevin Walchko <kevin.walchko at gmail.com>
>> 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<ros::NodeHandle>::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<nodelet::detail::CallbackQueue>::operator*()
>> const",
>> > referenced from:
>> >       nodelet::Nodelet::getMTCallbackQueue() constin nodelet_class.o
>> >       nodelet::Nodelet::getSTCallbackQueue() constin nodelet_class.o
>> >   "boost::shared_ptr<bond::Bond>::reset()", referenced from:
>> >       nodelet::Nodelet::~Nodelet()in nodelet_class.o
>> >       nodelet::Nodelet::~Nodelet()in nodelet_class.o
>> >   "boost::shared_ptr<bond::Bond>::~shared_ptr()", referenced from:
>> >       nodelet::Nodelet::~Nodelet()in nodelet_class.o
>> >       nodelet::Nodelet::~Nodelet()in nodelet_class.o
>> >   "boost::shared_ptr<ros::NodeHandle>::~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<nodelet::detail::CallbackQueue>::~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<ros::CallbackInterface>
>> > const&, unsigned long long)in callback_queue.o
>> >   "boost::shared_ptr<nodelet::detail::CallbackQueue>::shared_ptr()",
>> > referenced from:
>> >       nodelet::Nodelet::Nodelet()in nodelet_class.o
>> >       nodelet::detail::CallbackQueueManager::QueueInfo::QueueInfo()in
>> > callback_queue_manager.o
>> >   "boost::shared_ptr<ros::NodeHandle>::shared_ptr()", referenced from:
>> >       nodelet::Nodelet::Nodelet()in nodelet_class.o
>> >   "boost::shared_ptr<bond::Bond>::shared_ptr()", referenced from:
>> >       nodelet::Nodelet::Nodelet()in nodelet_class.o
>> >
>> >
>> "nodelet::MultipleInitializationException::~MultipleInitializationException()",
>> > referenced from:
>> >       nodelet::Nodelet::init(std::basic_string<char,
>> std::char_traits<char>,
>> > std::allocator<char> > const&, std::map<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> >, std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> >,
>> > std::less<std::basic_string<char, std::char_traits<char>,
>> > std::allocator<char> > >,
>> std::allocator<std::pair<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> > const,
>> > std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
>> > >
>> > const&, std::vector<std::basic_string<char, std::char_traits<char>,
>> > std::allocator<char> >, std::allocator<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> > > > const&,
>> > nodelet::detail::CallbackQueueManager*, boost::shared_ptr<bond::Bond>)in
>> > nodelet_class.o
>> >       vtable for nodelet::MultipleInitializationExceptionin
>> nodelet_class.o
>> >
>> "boost::shared_ptr<bond::Bond>::operator=(boost::shared_ptr<bond::Bond>
>> > const&)", referenced from:
>> >       nodelet::Nodelet::init(std::basic_string<char,
>> std::char_traits<char>,
>> > std::allocator<char> > const&, std::map<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> >, std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> >,
>> > std::less<std::basic_string<char, std::char_traits<char>,
>> > std::allocator<char> > >,
>> std::allocator<std::pair<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> > const,
>> > std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
>> > >
>> > const&, std::vector<std::basic_string<char, std::char_traits<char>,
>> > std::allocator<char> >, std::allocator<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> > > > const&,
>> > nodelet::detail::CallbackQueueManager*, boost::shared_ptr<bond::Bond>)in
>> > nodelet_class.o
>> >   "void
>> >
>> boost::shared_ptr<nodelet::detail::CallbackQueue>::reset<nodelet::detail::CallbackQueue>(nodelet::detail::CallbackQueue*)",
>> > referenced from:
>> >       nodelet::Nodelet::init(std::basic_string<char,
>> std::char_traits<char>,
>> > std::allocator<char> > const&, std::map<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> >, std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> >,
>> > std::less<std::basic_string<char, std::char_traits<char>,
>> > std::allocator<char> > >,
>> std::allocator<std::pair<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> > const,
>> > std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
>> > >
>> > const&, std::vector<std::basic_string<char, std::char_traits<char>,
>> > std::allocator<char> >, std::allocator<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> > > > const&,
>> > nodelet::detail::CallbackQueueManager*, boost::shared_ptr<bond::Bond>)in
>> > nodelet_class.o
>> >   "void
>> >
>> boost::shared_ptr<ros::NodeHandle>::reset<ros::NodeHandle>(ros::NodeHandle*)",
>> > referenced from:
>> >       nodelet::Nodelet::init(std::basic_string<char,
>> std::char_traits<char>,
>> > std::allocator<char> > const&, std::map<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> >, std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> >,
>> > std::less<std::basic_string<char, std::char_traits<char>,
>> > std::allocator<char> > >,
>> std::allocator<std::pair<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> > const,
>> > std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
>> > >
>> > const&, std::vector<std::basic_string<char, std::char_traits<char>,
>> > std::allocator<char> >, std::allocator<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> > > > const&,
>> > nodelet::detail::CallbackQueueManager*, boost::shared_ptr<bond::Bond>)in
>> > nodelet_class.o
>> >   "boost::shared_ptr<nodelet::detail::CallbackQueue>::get() const",
>> > referenced from:
>> >       nodelet::Nodelet::init(std::basic_string<char,
>> std::char_traits<char>,
>> > std::allocator<char> > const&, std::map<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> >, std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> >,
>> > std::less<std::basic_string<char, std::char_traits<char>,
>> > std::allocator<char> > >,
>> std::allocator<std::pair<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> > const,
>> > std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
>> > >
>> > const&, std::vector<std::basic_string<char, std::char_traits<char>,
>> > std::allocator<char> >, std::allocator<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> > > > const&,
>> > nodelet::detail::CallbackQueueManager*, boost::shared_ptr<bond::Bond>)in
>> > nodelet_class.o
>> >   "boost::shared_ptr<ros::NodeHandle>::operator->() const", referenced
>> from:
>> >       nodelet::Nodelet::init(std::basic_string<char,
>> std::char_traits<char>,
>> > std::allocator<char> > const&, std::map<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> >, std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> >,
>> > std::less<std::basic_string<char, std::char_traits<char>,
>> > std::allocator<char> > >,
>> std::allocator<std::pair<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> > const,
>> > std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
>> > >
>> > const&, std::vector<std::basic_string<char, std::char_traits<char>,
>> > std::allocator<char> >, std::allocator<std::basic_string<char,
>> > std::char_traits<char>, std::allocator<char> > > > const&,
>> > nodelet::detail::CallbackQueueManager*, boost::shared_ptr<bond::Bond>)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<nodelet::detail::CallbackQueue>::shared_from_this()",
>> > referenced from:
>> >
>> >
>> nodelet::detail::CallbackQueue::addCallback(boost::shared_ptr<ros::CallbackInterface>
>> > const&, unsigned long long)in callback_queue.o
>> >
>> >
>> "boost::enable_shared_from_this<nodelet::detail::CallbackQueue>::~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<nodelet::detail::CallbackQueue>::enable_shared_from_this()",
>> > referenced from:
>> >
>> >
>> nodelet::detail::CallbackQueue::CallbackQueue(nodelet::detail::CallbackQueueManager*)in
>> > callback_queue.o
>> >
>> >
>> "boost::shared_ptr<boost::mutex>::shared_ptr<boost::mutex>(boost::mutex*)",
>> > referenced from:
>> >       nodelet::detail::CallbackQueueManager::ThreadInfo::ThreadInfo()in
>> > callback_queue_manager.o
>> >
>> >
>> "boost::shared_ptr<boost::condition_variable>::shared_ptr<boost::condition_variable>(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 at TARDIS nodelet]$
>> >
>> > _______________________________________________
>> > ros-users mailing list
>> > ros-users at code.ros.org
>> > https://code.ros.org/mailman/listinfo/ros-users
>> >
>> >
>> _______________________________________________
>> ros-users mailing list
>> ros-users at code.ros.org
>> https://code.ros.org/mailman/listinfo/ros-users
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20110902/25ed6f47/attachment-0002.html>


More information about the ros-users mailing list