Linking against KDL in ROS Hydro

Dear Orocos-Users,

I'm trying to use KDL in ROS Hydro with catkin. I encountered the
following a linker error which I could not resolve, so far.

I understand that this could be considered a ROS/catkin-specific
question. However, I suspect the reason to be related to the way catkin
is compiled and release in ROS Hydro, i.e. mixed cmake/catkin. Hence,
the question on this mailing list. Please point me to any more related
point of questioning, if existent. ;)

OK, here comes my situation:

(1) I have a cpp-library 'Mylib' in the catkin ROS package 'somelib'.
This library links against KDL, and compiles and links fine.

(2) The ROS package 'somelib' declares orocos_kdl as a system dependency
which depending packages also need.

(3) I have a cpp-executable 'MyNode' in the catkin package 'somenode'
which links against 'somelib' and itself does not use any KDL
functionality. Still, linking of somenode fails on kdl:

Linking CXX executable
/home/georg/ros/hydro/catkin_ws2/devel/lib/somenode/somenode_node
/usr/bin/ld: cannot find -lorocos-kdl

(4) Strangely, orocos_kdl is actually part of the catkin_LIBRARIES variable:

catkin_LIBRARIES=/opt/ros/hydro/lib/libroscpp.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/usr/lib/libboost_signals-mt.so;/usr/lib/libboost_filesystem-mt.so;/usr/lib/libboost_system-mt.so;/opt/ros/hydro/lib/libcpp_common.so;/opt/ros/hydro/lib/libroscpp_serialization.so;/opt/ros/hydro/lib/librostime.so;/usr/lib/libboost_date_time-mt.so;/usr/lib/libboost_thread-mt.so;/opt/ros/hydro/lib/librosconsole.so;/usr/lib/libboost_regex-mt.so;/usr/lib/liblog4cxx.so;/opt/ros/hydro/lib/libxmlrpcpp.so;somelib;/opt/ros/hydro/lib/liborocos-kdl.so

I have uploaded my code on the following repo:

https://github.com/airballking/orocos_hydro

What do I need to export/declare such that packages depending on the ROS
package 'somelib' automatically get orocos_kdl, as well? Did anyone
already encounter/solve this problem? Thanks already!

Best,
Georg.

Linking against KDL in ROS Hydro

Hi Georg,

your problem is related to an issue I posted in the catkin bugtracker a
while ago:
https://github.com/ros/catkin/issues/535

Unfortunately catkin_package(DEPENDS orocos_kdl) only exports the
orocos_kdl_LIBRARIES and orocos_kdl_INCLUDE_DIRS flags to dependent
packages, so the LIBRARY_DIRS variable gets lost. That's why your somenode
package cannot find liborocos-kdl.so. What needs to be done according to
wjwwood's answer on Github is to expand the orocos_kdl_LIBRARIES variable
to its full path by calling find_library() before the call to
catkin_package(...). Either this has to be added in the orocos_kdl cmake
config file or you can add it after the find_package(orocos_kdl REQUIRED)
line in somelib/CMakeLists.txt:

find_package(orocos_kdl REQUIRED)

# Find the absolute path to the orocos-kdl library
find_library(orocos_kdl_LIBRARY NAMES ${orocos_kdl_LIBRARIES} PATHS
${orocos_kdl_LIBRARY_DIRS} NO_DEFAULT_PATH)
set(orocos_kdl_LIBRARIES ${orocos_kdl_LIBRARY})

catkin_package(... DEPENDS orocos_kdl)

With that patch I could compile your example successfully in hydro. Another
possible workaround is to let somenode also depend on orocos_kdl and to add
the link_directories(...) line as you did in somelib.

Regards,
Johannes

On Wed, Nov 20, 2013 at 5:45 PM, Georg Bartels <
georg [dot] bartels [..] ...> wrote:

> Dear Orocos-Users,
>
> I'm trying to use KDL in ROS Hydro with catkin. I encountered the
> following a linker error which I could not resolve, so far.
>
> I understand that this could be considered a ROS/catkin-specific
> question. However, I suspect the reason to be related to the way catkin
> is compiled and release in ROS Hydro, i.e. mixed cmake/catkin. Hence,
> the question on this mailing list. Please point me to any more related
> point of questioning, if existent. ;)
>
> OK, here comes my situation:
>
> (1) I have a cpp-library 'Mylib' in the catkin ROS package 'somelib'.
> This library links against KDL, and compiles and links fine.
>
> (2) The ROS package 'somelib' declares orocos_kdl as a system dependency
> which depending packages also need.
>
> (3) I have a cpp-executable 'MyNode' in the catkin package 'somenode'
> which links against 'somelib' and itself does not use any KDL
> functionality. Still, linking of somenode fails on kdl:
>
> Linking CXX executable
> /home/georg/ros/hydro/catkin_ws2/devel/lib/somenode/somenode_node
> /usr/bin/ld: cannot find -lorocos-kdl
>
> (4) Strangely, orocos_kdl is actually part of the catkin_LIBRARIES
> variable:
>
>
> catkin_LIBRARIES=/opt/ros/hydro/lib/libroscpp.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/usr/lib/libboost_signals-mt.so;/usr/lib/libboost_filesystem-mt.so;/usr/lib/libboost_system-mt.so;/opt/ros/hydro/lib/libcpp_common.so;/opt/ros/hydro/lib/libroscpp_serialization.so;/opt/ros/hydro/lib/librostime.so;/usr/lib/libboost_date_time-mt.so;/usr/lib/libboost_thread-mt.so;/opt/ros/hydro/lib/librosconsole.so;/usr/lib/libboost_regex-mt.so;/usr/lib/liblog4cxx.so;/opt/ros/hydro/lib/libxmlrpcpp.so;somelib;/opt/ros/hydro/lib/liborocos-kdl.so
>
> I have uploaded my code on the following repo:
>
> https://github.com/airballking/orocos_hydro
>
> What do I need to export/declare such that packages depending on the ROS
> package 'somelib' automatically get orocos_kdl, as well? Did anyone
> already encounter/solve this problem? Thanks already!
>
> Best,
> Georg.
> --
> Orocos-Users mailing list
> Orocos-Users [..] ...
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>

Ruben Smits's picture

Linking against KDL in ROS Hydro

I updated the orocos-kdl-config.cmake file to not use pkg config as a
backend anymore, this should fix your issue. It is availabe in the
master branch of github.com/orocos/orocos_kinematics_dynamics atm.
Release will follow.

Ruben

On Wed, Nov 20, 2013 at 7:37 PM, Johannes Meyer
<johannes [..] ...> wrote:
> Hi Georg,
>
> your problem is related to an issue I posted in the catkin bugtracker a
> while ago:
> https://github.com/ros/catkin/issues/535
>
> Unfortunately catkin_package(DEPENDS orocos_kdl) only exports the
> orocos_kdl_LIBRARIES and orocos_kdl_INCLUDE_DIRS flags to dependent
> packages, so the LIBRARY_DIRS variable gets lost. That's why your somenode
> package cannot find liborocos-kdl.so. What needs to be done according to
> wjwwood's answer on Github is to expand the orocos_kdl_LIBRARIES variable to
> its full path by calling find_library() before the call to
> catkin_package(...). Either this has to be added in the orocos_kdl cmake
> config file or you can add it after the find_package(orocos_kdl REQUIRED)
> line in somelib/CMakeLists.txt:
>
> find_package(orocos_kdl REQUIRED)
>
> # Find the absolute path to the orocos-kdl library
> find_library(orocos_kdl_LIBRARY NAMES ${orocos_kdl_LIBRARIES} PATHS
> ${orocos_kdl_LIBRARY_DIRS} NO_DEFAULT_PATH)
> set(orocos_kdl_LIBRARIES ${orocos_kdl_LIBRARY})
>
> catkin_package(... DEPENDS orocos_kdl)
>
> With that patch I could compile your example successfully in hydro. Another
> possible workaround is to let somenode also depend on orocos_kdl and to add
> the link_directories(...) line as you did in somelib.
>
> Regards,
> Johannes
>
>
>
> On Wed, Nov 20, 2013 at 5:45 PM, Georg Bartels
> <georg [dot] bartels [..] ...> wrote:
>>
>> Dear Orocos-Users,
>>
>> I'm trying to use KDL in ROS Hydro with catkin. I encountered the
>> following a linker error which I could not resolve, so far.
>>
>> I understand that this could be considered a ROS/catkin-specific
>> question. However, I suspect the reason to be related to the way catkin
>> is compiled and release in ROS Hydro, i.e. mixed cmake/catkin. Hence,
>> the question on this mailing list. Please point me to any more related
>> point of questioning, if existent. ;)
>>
>> OK, here comes my situation:
>>
>> (1) I have a cpp-library 'Mylib' in the catkin ROS package 'somelib'.
>> This library links against KDL, and compiles and links fine.
>>
>> (2) The ROS package 'somelib' declares orocos_kdl as a system dependency
>> which depending packages also need.
>>
>> (3) I have a cpp-executable 'MyNode' in the catkin package 'somenode'
>> which links against 'somelib' and itself does not use any KDL
>> functionality. Still, linking of somenode fails on kdl:
>>
>> Linking CXX executable
>> /home/georg/ros/hydro/catkin_ws2/devel/lib/somenode/somenode_node
>> /usr/bin/ld: cannot find -lorocos-kdl
>>
>> (4) Strangely, orocos_kdl is actually part of the catkin_LIBRARIES
>> variable:
>>
>>
>> catkin_LIBRARIES=/opt/ros/hydro/lib/libroscpp.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/usr/lib/libboost_signals-mt.so;/usr/lib/libboost_filesystem-mt.so;/usr/lib/libboost_system-mt.so;/opt/ros/hydro/lib/libcpp_common.so;/opt/ros/hydro/lib/libroscpp_serialization.so;/opt/ros/hydro/lib/librostime.so;/usr/lib/libboost_date_time-mt.so;/usr/lib/libboost_thread-mt.so;/opt/ros/hydro/lib/librosconsole.so;/usr/lib/libboost_regex-mt.so;/usr/lib/liblog4cxx.so;/opt/ros/hydro/lib/libxmlrpcpp.so;somelib;/opt/ros/hydro/lib/liborocos-kdl.so
>>
>> I have uploaded my code on the following repo:
>>
>> https://github.com/airballking/orocos_hydro
>>
>> What do I need to export/declare such that packages depending on the ROS
>> package 'somelib' automatically get orocos_kdl, as well? Did anyone
>> already encounter/solve this problem? Thanks already!
>>
>> Best,
>> Georg.
>> --
>> Orocos-Users mailing list
>> Orocos-Users [..] ...
>> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>
>
>
>
> --
> Johannes Meyer, Senior Application Engineer
> +32 468 139828
>
> Intermodalics - Kapeldreef 60, 3001 Heverlee - BELGIUM
> www.intermodalics.eu
>
> --
> Orocos-Users mailing list
> Orocos-Users [..] ...
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>

Linking against KDL in ROS Hydro

Dear Ruben, dear Johannes,

thanks a lot for the quick fix! My example is indeed now compiling with
the master branch from github/orocos/... (checked out 10min ago). :)

Best,
Georg.

On 11/20/2013 11:02 PM, Ruben Smits wrote:
> I updated the orocos-kdl-config.cmake file to not use pkg config as a
> backend anymore, this should fix your issue. It is availabe in the
> master branch of github.com/orocos/orocos_kinematics_dynamics atm.
> Release will follow.
>
> Ruben
>
> On Wed, Nov 20, 2013 at 7:37 PM, Johannes Meyer
> <johannes [..] ...> wrote:
>> Hi Georg,
>>
>> your problem is related to an issue I posted in the catkin bugtracker a
>> while ago:
>> https://github.com/ros/catkin/issues/535
>>
>> Unfortunately catkin_package(DEPENDS orocos_kdl) only exports the
>> orocos_kdl_LIBRARIES and orocos_kdl_INCLUDE_DIRS flags to dependent
>> packages, so the LIBRARY_DIRS variable gets lost. That's why your somenode
>> package cannot find liborocos-kdl.so. What needs to be done according to
>> wjwwood's answer on Github is to expand the orocos_kdl_LIBRARIES variable to
>> its full path by calling find_library() before the call to
>> catkin_package(...). Either this has to be added in the orocos_kdl cmake
>> config file or you can add it after the find_package(orocos_kdl REQUIRED)
>> line in somelib/CMakeLists.txt:
>>
>> find_package(orocos_kdl REQUIRED)
>>
>> # Find the absolute path to the orocos-kdl library
>> find_library(orocos_kdl_LIBRARY NAMES ${orocos_kdl_LIBRARIES} PATHS
>> ${orocos_kdl_LIBRARY_DIRS} NO_DEFAULT_PATH)
>> set(orocos_kdl_LIBRARIES ${orocos_kdl_LIBRARY})
>>
>> catkin_package(... DEPENDS orocos_kdl)
>>
>> With that patch I could compile your example successfully in hydro. Another
>> possible workaround is to let somenode also depend on orocos_kdl and to add
>> the link_directories(...) line as you did in somelib.
>>
>> Regards,
>> Johannes
>>
>>
>>
>> On Wed, Nov 20, 2013 at 5:45 PM, Georg Bartels
>> <georg [dot] bartels [..] ...> wrote:
>>>
>>> Dear Orocos-Users,
>>>
>>> I'm trying to use KDL in ROS Hydro with catkin. I encountered the
>>> following a linker error which I could not resolve, so far.
>>>
>>> I understand that this could be considered a ROS/catkin-specific
>>> question. However, I suspect the reason to be related to the way catkin
>>> is compiled and release in ROS Hydro, i.e. mixed cmake/catkin. Hence,
>>> the question on this mailing list. Please point me to any more related
>>> point of questioning, if existent. ;)
>>>
>>> OK, here comes my situation:
>>>
>>> (1) I have a cpp-library 'Mylib' in the catkin ROS package 'somelib'.
>>> This library links against KDL, and compiles and links fine.
>>>
>>> (2) The ROS package 'somelib' declares orocos_kdl as a system dependency
>>> which depending packages also need.
>>>
>>> (3) I have a cpp-executable 'MyNode' in the catkin package 'somenode'
>>> which links against 'somelib' and itself does not use any KDL
>>> functionality. Still, linking of somenode fails on kdl:
>>>
>>> Linking CXX executable
>>> /home/georg/ros/hydro/catkin_ws2/devel/lib/somenode/somenode_node
>>> /usr/bin/ld: cannot find -lorocos-kdl
>>>
>>> (4) Strangely, orocos_kdl is actually part of the catkin_LIBRARIES
>>> variable:
>>>
>>>
>>> catkin_LIBRARIES=/opt/ros/hydro/lib/libroscpp.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/usr/lib/libboost_signals-mt.so;/usr/lib/libboost_filesystem-mt.so;/usr/lib/libboost_system-mt.so;/opt/ros/hydro/lib/libcpp_common.so;/opt/ros/hydro/lib/libroscpp_serialization.so;/opt/ros/hydro/lib/librostime.so;/usr/lib/libboost_date_time-mt.so;/usr/lib/libboost_thread-mt.so;/opt/ros/hydro/lib/librosconsole.so;/usr/lib/libboost_regex-mt.so;/usr/lib/liblog4cxx.so;/opt/ros/hydro/lib/libxmlrpcpp.so;somelib;/opt/ros/hydro/lib/liborocos-kdl.so
>>>
>>> I have uploaded my code on the following repo:
>>>
>>> https://github.com/airballking/orocos_hydro
>>>
>>> What do I need to export/declare such that packages depending on the ROS
>>> package 'somelib' automatically get orocos_kdl, as well? Did anyone
>>> already encounter/solve this problem? Thanks already!
>>>
>>> Best,
>>> Georg.
>>> --
>>> Orocos-Users mailing list
>>> Orocos-Users [..] ...
>>> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>>
>>
>>
>>
>> --
>> Johannes Meyer, Senior Application Engineer
>> +32 468 139828
>>
>> Intermodalics - Kapeldreef 60, 3001 Heverlee - BELGIUM
>> www.intermodalics.eu
>>
>> --
>> Orocos-Users mailing list
>> Orocos-Users [..] ...
>> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>>
>
>
>

Linking against KDL in ROS Hydro

A short follow-up:

I would welcome a release because calling catkin_make_isolated on a
workspace containing orocos_kinematics_dynamics overwrites the
setup.bash in the devel_isolated or install_isolated of the
corresponding overlay. The new setup.bash no longer sources the
originally provided reference setup.bash, e.g.
/opt/ros/hydro/setup.bash. I tried in vain to figure out why or how. Has
anyone else encountered such a behavior in ROS Hydro before?

My colleagues compiling PCL under ROS Groovy (also cmake-compilation
with release using bloom/catkin at the time) do not observe any touches
of the setup.bash in devel_isolated or install_isolated for a workspace
with an old PCL. So, I guess I'm not seeing the default behavior of
catkin_make_isolated.

In conclusion, I unfortunately will revert to using groovy or build my
depending libraries using rosbuild until the release is available in debs.

Best,
Georg.

On 11/21/2013 10:01 AM, Georg Bartels wrote:
> Dear Ruben, dear Johannes,
>
> thanks a lot for the quick fix! My example is indeed now compiling with
> the master branch from github/orocos/... (checked out 10min ago). :)
>
> Best,
> Georg.
>
>
> On 11/20/2013 11:02 PM, Ruben Smits wrote:
>> I updated the orocos-kdl-config.cmake file to not use pkg config as a
>> backend anymore, this should fix your issue. It is availabe in the
>> master branch of github.com/orocos/orocos_kinematics_dynamics atm.
>> Release will follow.
>>
>> Ruben
>>
>> On Wed, Nov 20, 2013 at 7:37 PM, Johannes Meyer
>> <johannes [..] ...> wrote:
>>> Hi Georg,
>>>
>>> your problem is related to an issue I posted in the catkin bugtracker a
>>> while ago:
>>> https://github.com/ros/catkin/issues/535
>>>
>>> Unfortunately catkin_package(DEPENDS orocos_kdl) only exports the
>>> orocos_kdl_LIBRARIES and orocos_kdl_INCLUDE_DIRS flags to dependent
>>> packages, so the LIBRARY_DIRS variable gets lost. That's why your somenode
>>> package cannot find liborocos-kdl.so. What needs to be done according to
>>> wjwwood's answer on Github is to expand the orocos_kdl_LIBRARIES variable to
>>> its full path by calling find_library() before the call to
>>> catkin_package(...). Either this has to be added in the orocos_kdl cmake
>>> config file or you can add it after the find_package(orocos_kdl REQUIRED)
>>> line in somelib/CMakeLists.txt:
>>>
>>> find_package(orocos_kdl REQUIRED)
>>>
>>> # Find the absolute path to the orocos-kdl library
>>> find_library(orocos_kdl_LIBRARY NAMES ${orocos_kdl_LIBRARIES} PATHS
>>> ${orocos_kdl_LIBRARY_DIRS} NO_DEFAULT_PATH)
>>> set(orocos_kdl_LIBRARIES ${orocos_kdl_LIBRARY})
>>>
>>> catkin_package(... DEPENDS orocos_kdl)
>>>
>>> With that patch I could compile your example successfully in hydro. Another
>>> possible workaround is to let somenode also depend on orocos_kdl and to add
>>> the link_directories(...) line as you did in somelib.
>>>
>>> Regards,
>>> Johannes
>>>
>>>
>>>
>>> On Wed, Nov 20, 2013 at 5:45 PM, Georg Bartels
>>> <georg [dot] bartels [..] ...> wrote:
>>>>
>>>> Dear Orocos-Users,
>>>>
>>>> I'm trying to use KDL in ROS Hydro with catkin. I encountered the
>>>> following a linker error which I could not resolve, so far.
>>>>
>>>> I understand that this could be considered a ROS/catkin-specific
>>>> question. However, I suspect the reason to be related to the way catkin
>>>> is compiled and release in ROS Hydro, i.e. mixed cmake/catkin. Hence,
>>>> the question on this mailing list. Please point me to any more related
>>>> point of questioning, if existent. ;)
>>>>
>>>> OK, here comes my situation:
>>>>
>>>> (1) I have a cpp-library 'Mylib' in the catkin ROS package 'somelib'.
>>>> This library links against KDL, and compiles and links fine.
>>>>
>>>> (2) The ROS package 'somelib' declares orocos_kdl as a system dependency
>>>> which depending packages also need.
>>>>
>>>> (3) I have a cpp-executable 'MyNode' in the catkin package 'somenode'
>>>> which links against 'somelib' and itself does not use any KDL
>>>> functionality. Still, linking of somenode fails on kdl:
>>>>
>>>> Linking CXX executable
>>>> /home/georg/ros/hydro/catkin_ws2/devel/lib/somenode/somenode_node
>>>> /usr/bin/ld: cannot find -lorocos-kdl
>>>>
>>>> (4) Strangely, orocos_kdl is actually part of the catkin_LIBRARIES
>>>> variable:
>>>>
>>>>
>>>> catkin_LIBRARIES=/opt/ros/hydro/lib/libroscpp.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/usr/lib/libboost_signals-mt.so;/usr/lib/libboost_filesystem-mt.so;/usr/lib/libboost_system-mt.so;/opt/ros/hydro/lib/libcpp_common.so;/opt/ros/hydro/lib/libroscpp_serialization.so;/opt/ros/hydro/lib/librostime.so;/usr/lib/libboost_date_time-mt.so;/usr/lib/libboost_thread-mt.so;/opt/ros/hydro/lib/librosconsole.so;/usr/lib/libboost_regex-mt.so;/usr/lib/liblog4cxx.so;/opt/ros/hydro/lib/libxmlrpcpp.so;somelib;/opt/ros/hydro/lib/liborocos-kdl.so
>>>>
>>>> I have uploaded my code on the following repo:
>>>>
>>>> https://github.com/airballking/orocos_hydro
>>>>
>>>> What do I need to export/declare such that packages depending on the ROS
>>>> package 'somelib' automatically get orocos_kdl, as well? Did anyone
>>>> already encounter/solve this problem? Thanks already!
>>>>
>>>> Best,
>>>> Georg.
>>>> --
>>>> Orocos-Users mailing list
>>>> Orocos-Users [..] ...
>>>> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>>>
>>>
>>>
>>>
>>> --
>>> Johannes Meyer, Senior Application Engineer
>>> +32 468 139828
>>>
>>> Intermodalics - Kapeldreef 60, 3001 Heverlee - BELGIUM
>>> www.intermodalics.eu
>>>
>>> --
>>> Orocos-Users mailing list
>>> Orocos-Users [..] ...
>>> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>>>
>>
>>
>>
>

Linking against KDL in ROS Hydro

On Thu, Nov 21, 2013 at 7:48 AM, Georg Bartels <
georg [dot] bartels [..] ...> wrote:

> I would welcome a release because calling catkin_make_isolated on a
> workspace containing orocos_kinematics_dynamics overwrites the
> setup.bash in the devel_isolated or install_isolated of the
> corresponding overlay. The new setup.bash no longer sources the
> originally provided reference setup.bash, e.g.
> /opt/ros/hydro/setup.bash. I tried in vain to figure out why or how. Has
> anyone else encountered such a behavior in ROS Hydro before?
>
> My colleagues compiling PCL under ROS Groovy (also cmake-compilation
> with release using bloom/catkin at the time) do not observe any touches
> of the setup.bash in devel_isolated or install_isolated for a workspace
> with an old PCL. So, I guess I'm not seeing the default behavior of
> catkin_make_isolated.
>
> In conclusion, I unfortunately will revert to using groovy or build my
> depending libraries using rosbuild until the release is available in debs.
>

Georg,

Could you file a ticket with the Catkin project (and cc me: @jbohren ):
https://github.com/ros/catkin and see if they can figure out why
re-invoking catkin_make_isolated is breaking your overlay?

-j

Ruben Smits's picture

Linking against KDL in ROS Hydro

Hi Bartel,

Op woensdag 20 november 2013 schreef Georg Bartels (
georg [dot] bartels [..] ...):

> Dear Orocos-Users,
>
> I'm trying to use KDL in ROS Hydro with catkin. I encountered the
> following a linker error which I could not resolve, so far.
>
> I understand that this could be considered a ROS/catkin-specific
> question. However, I suspect the reason to be related to the way catkin
> is compiled and release in ROS Hydro, i.e. mixed cmake/catkin. Hence,
> the question on this mailing list. Please point me to any more related
> point of questioning, if existent. ;)
>
> OK, here comes my situation:
>
> (1) I have a cpp-library 'Mylib' in the catkin ROS package 'somelib'.
> This library links against KDL, and compiles and links fine.
>
> (2) The ROS package 'somelib' declares orocos_kdl as a system dependency
> which depending packages also need.
>
> (3) I have a cpp-executable 'MyNode' in the catkin package 'somenode'
> which links against 'somelib' and itself does not use any KDL
> functionality. Still, linking of somenode fails on kdl:
>
> Linking CXX executable
> /home/georg/ros/hydro/catkin_ws2/devel/lib/somenode/somenode_node
> /usr/bin/ld: cannot find -lorocos-kdl
>
> (4) Strangely, orocos_kdl is actually part of the catkin_LIBRARIES
> variable:
>
>
> catkin_LIBRARIES=/opt/ros/hydro/lib/libroscpp.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/usr/lib/libboost_signals-mt.so;/usr/lib/libboost_filesystem-mt.so;/usr/lib/libboost_system-mt.so;/opt/ros/hydro/lib/libcpp_common.so;/opt/ros/hydro/lib/libroscpp_serialization.so;/opt/ros/hydro/lib/librostime.so;/usr/lib/libboost_date_time-mt.so;/usr/lib/libboost_thread-mt.so;/opt/ros/hydro/lib/librosconsole.so;/usr/lib/libboost_regex-mt.so;/usr/lib/liblog4cxx.so;/opt/ros/hydro/lib/libxmlrpcpp.so;somelib;/opt/ros/hydro/lib/liborocos-kdl.so
>
> I have uploaded my code on the following repo:
>
> https://github.com/airballking/orocos_hydro
>
> What do I need to export/declare such that packages depending on the ROS
> package 'somelib' automatically get orocos_kdl, as well? Did anyone
> already encounter/solve this problem? Thanks already!
>
>
Could you provide the output of "make VERBOSE=1", so we can see the exact
linker command?

Ruben

> Best,
> Georg.
> --
> Orocos-Users mailing list
> Orocos-Users [..] ... <javascript:;>
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>