On Wed, Jul 10, 2013 at 6:39 PM, Marcus Liebhardt < marcus.liebhardt@yujinrobot.com> wrote: > Hey guys, > It's me again. Sorry for the high traffic. > > I released the openni_tracker and the source build works fine. However, > when building the deb, orocos-kdl can't be found. > > CMake Error at /opt/ros/hydro/share/catkin/cmake/catkinConfig.cmake:72 (find_package): > Could not find a configuration file for package orocos_kdl. > > Set orocos_kdl_DIR to the directory containing a CMake configuration file > for orocos_kdl. The file will have one of the following names: > > orocos_kdlConfig.cmake > orocos_kdl-config.cmake > > Call Stack (most recent call first): > CMakeLists.txt:3 (find_package) > > > So, I started looking for the cause of this and found this seemingly > related issue involving the geometry stack: > https://github.com/ros/geometry/issues/11. The respective fix treats > orocos-kdl as a plain Cmake package instead of a catkin > package. Unfortunately, when applying this patch to the openni_tracker, my > local source build can't find the orocos-kdl library it tries to link to: > > Linking CXX executable > /opt/sandbox_workspace/devel/lib/openni_tracker/openni_tracker > /usr/bin/ld: cannot find -lorocos-kdl > collect2: ld returned 1 exit status > make[2]: *** > [/opt/sandbox_workspace/devel/lib/openni_tracker/openni_tracker] Error 1 > > Again I started off to find hints for the cause of this. I took a look > at orocos_kdl-config.cmake and even the package config file, but nothing > seems suspicious to me. However, I must say that I don't have lots of CMake > experience. So this is harder for me than Korean. 0o > > One thing I noticed though is that the CMake log output about orocos-kdl > doesn't show any linker flags: > > Looking for KDL in: /opt/ros/hydro > -- checking for one of the modules 'orocos_kdl' > Includes in: /opt/ros/hydro/include;/usr/include/eigen3 > Compiler flags: -I/opt/ros/hydro/include;-I/usr/include/eigen3 > Libraries: orocos-kdl > Libraries in: /opt/ros/hydro/lib > Linker flags : > Defines: > > I will keep looking further into this. But any hints, tips and help is > highly appreciated! > Joder! I think, I have found the missing piece - it's called "link_directories()". I shouldn't have looked only at that pull request, but at the newest version of the mentioned CMakeLists example. I'm still a bit confused though. I can't remember needing this "link_directories" addition so far. Furthermore, the ROS wiki even recommends not to use it, since target_link_libraries() should suffice for catkin and plain cmake packages - which is the case here ( http://ros.org/wiki/catkin/CMakeLists.txt#Include_Paths_and_Library_Paths). Could someone shed some light on this please? Thanks again and sorry for the spam, Marcus > > Thanks for reading, > Marcus > > >