ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

A question in catkin concepts

asked 2013-01-17 08:55:33 -0500

AdrianPeng gravatar image

updated 2013-01-17 08:56:17 -0500

I am confusing when I read the following part of Catkin Concepts

"A <run_depend> entry will define any dependency that a 3rd package using our new package needs to also have in the environment. This can happen for libraries at runtime, or for headers at build-time of the 3rd package. So "run" in <run_depend> can be slightly misleading. When a debian package is created, it should make sure that all <run_depend> dependencies are also installed by apt-get."

What does it mean a 3rd package?

What I understand about <run_depend> is that it specifies executables or files this new package depends on during run-time. Is it right?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2013-01-17 12:15:50 -0500

KruseT gravatar image

Assume you build a package like beginner_tutorial. This depends on package roscpp.

This means roscpp is the first package, beginner_tutorial the second.

Now somebody else wants to create another package, additional_stuff, on top of beginner_tutorial. That would be a third package in our dependency chain.

If additional_stuff would also need roscpp to depend on beginner_tutorial, then beginner_tutorial should declare this, so that additional_stuff does not need to declare it as well.

This is not just about run-time, it is about build time of the 3rd package.

E.g. if in beginner_tutorial you create a public c++ header that includes stuff from ros.h (from roscpp), then additional_stuff would need to know where to get ros.h. So this is not exactly run time.

edit flag offensive delete link more


Thank you! I got it!

AdrianPeng gravatar image AdrianPeng  ( 2013-01-17 14:07:12 -0500 )edit

Question Tools


Asked: 2013-01-17 08:55:33 -0500

Seen: 182 times

Last updated: Jan 17 '13