[ros-users] Problem linking to libraries from other Ros packages

Tully Foote tfoote at willowgarage.com
Wed Feb 2 05:43:25 UTC 2011


The library you are trying to link to is named foo, not A in the
CMakeLists.txt of A.  If you export -lfoo insteadof -lA it should work
fine.  in our example code we often use ${PROJECT_NAME} for the name of
libraries which makes the library have the same name as the package.

As a side note, you don't need to explicitly link lib A, now foo, to bar in
B's CMakeLists, it's already linked due to the export.


On Tue, Feb 1, 2011 at 9:25 PM, Person With question <
personwithquestion at yahoo.com> wrote:

> Hello,
> I am having trouble figuring out how to include libraries from other
> packages I have written. I have attached a minimal example of my problem.
> I have package A that contains foo.cpp and foo.h, and I have package B that
> contains bar.cpp from which it tries to call a function in foo.cpp. I have
> placed foo.h in "include/A/foo.h", and all cpp files are in their respective
> "src" folders. I have configured the manifests of package A and B as
> follows:
> ---- A ----
> + <export>
> +   <cpp cflags="-I${prefix}/include" lflags="-Wl,-rpath,${prefix}/lib
> -L${prefix}/lib -lA"/>·
> + </export>
> ---- B ----
> + <depend package="A"/>
> ...and I have configured the CMakeLists.txt of packages A and B as follows:
> ---- A ----
> + rosbuild_add_library(foo src/foo.cpp)
> ---- B ----
> + rosbuild_add_executable(bar src/bar.cpp)
> + target_link_libraries(bar A)
> It seems that I have no trouble including "A/foo.h" from bar.cpp, but I
> cannot use any of the functions. When I try to compile package B, I get the
> error "/usr/bin/ld: cannot find -lA" What am I doing wrong?
> I would very much appreciate it if someone could point me in the right
> direction, or email a new attachment with the fixed source. I've followed
> the advice in the following links, but have had no luck getting this example
> to work.
> http://ros-users.122217.n3.nabble.com/linking-shared-library-td862667.html
> http://www.ros.org/wiki/Manifest
> http://www.ros.org/wiki/rosbuild/CMakeLists
> -Person
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users

Tully Foote
Systems Engineer
Willow Garage, Inc.
tfoote at willowgarage.com
(650) 475-2827
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20110201/c120282f/attachment-0003.html>

More information about the ros-users mailing list