costashatz / nao_dcm

ROS Stack for Nao Humanoid using the DCM (Device Communication Manager) Proxy
BSD 3-Clause "New" or "Revised" License
11 stars 11 forks source link

nao_dcm and boost 1.58.0 linking failed #2

Open TekatoD opened 9 years ago

TekatoD commented 9 years ago

We're trying to build nao_dcm_driver. We are using Arch Linux 64, Ros Indigo, Naoqi SDK 2.3.3 and boost 1.58.0. And we are getting such output:

[100%] Linking CXX executable /home/arssivka/sources/ros/ros-nao/devel/lib/nao_dcm_driver/nao_dcm_driver
/usr/bin/ld: warning: libboost_system.so.1.55.0, needed by /opt/naoqi-sdk/lib/libalcommon.so, may conflict with libboost_system.so.1.58.0
/usr/bin/ld: warning: libboost_thread.so.1.55.0, needed by /opt/naoqi-sdk/lib/libalcommon.so, may conflict with libboost_thread.so.1.58.0
/usr/bin/ld: warning: libboost_signals.so.1.55.0, needed by /opt/naoqi-sdk/lib/libalcommon.so, may conflict with libboost_signals.so.1.58.0
/opt/naoqi-sdk/lib/libqimessaging.so: undefined reference to `qi::EventLoop::async(boost::function<void ()>, unsigned long)'
/opt/naoqi-sdk/lib/libalcommon.so: undefined reference to `qi::Application::Application(int&, char**&)'
/opt/naoqi-sdk/lib/libqimessaging.so: undefined reference to `qi::Application::Application(int&, char**&)'
/opt/naoqi-sdk/lib/libqimessaging.so: undefined reference to `qi::details::printBuffer(std::ostream&, qi::Buffer const&)'
/opt/naoqi-sdk/lib/libqitype.so: undefined reference to `qi::EventLoop::isInEventLoopThread()'
costashatz commented 9 years ago

As you can see here, Naoqi SDK 2.1.* has boost 1.55.0 and not boost 1.58.0. That could be the source of your problem.

I will try to reproduce your error when I have sometime (I can't guarantee that it will be very shortly as I'm in the middle of moving to a different country right now).

TekatoD commented 9 years ago

We are going to try out qibuild in cmake file along with catkin. If you've already tried this, please let us now. Or if you have ideas what can solve this problev please let us know too. If we will succeed we can provide a pull request.

jokla commented 8 years ago

@TekatoD Have you succeeded to build nao_dcm_driver with Naoqi SDK 2.3?

I am trying to build romeo_dcm_driver with naoqi-sdk-2.3.0.14-linux64. I have a similar problem: see here.

1) Did you try this commit? You did not have this problem?

2) FindNAOqi.cmake is looking for the library qitype that doesn't exist anymore in naoqi-sdk-2.3.0.14. Maybe it was merged with the lib qi (I can find it in the folder /naoqi-sdk-2.3.0.14-linux64/include/qi/type).

If I just uncomment it from FindNAOqi.cmake and from the CMakeLists.txt I get other errors...

Lewishw commented 8 years ago

I had a similar issue while building nao_dcm_driver with SDK 2.1.4.13. The problem was that I installed some ros package (Naoqi_driver) using apt-get install and that also installs the deprecated package naoqi_libqi since it has a dependencies on qi. So instead of using the qi library that is in SDK folder, it was using the old library that was in the opt/ros/indigo/lib folder. Just make sure that while building, CMAKE is using the libqi that is in your C++ SDK folder.