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

What is the difference between <exec_depend> and <run_depend> ?

asked 2018-02-19 06:23:06 -0500

Fldeg gravatar image

I'm pretty new here but wanted to let you guys know I had en error while just follwing the tutorial.

When I reached the "msg and srv" part ( http://wiki.ros.org/ROS/Tutorials/Cre... ) I encountered an error.

I was asked to put

<exec_depend>message_runtime</exec_depend>

in my package.xml file.

When I entered

$ rosmsg show beginner_tutorials/Num

This was the error I got :

  File "/opt/ros/lunar/bin/rosmsg", line 35, in <module>
    rosmsg.rosmsgmain()
  File "/opt/ros/lunar/lib/python2.7/dist-packages/rosmsg/__init__.py", line 754, in rosmsgmain
    sys.exit(rosmsg_cmd_show(ext, full, command))
  File "/opt/ros/lunar/lib/python2.7/dist-packages/rosmsg/__init__.py", line 621, in rosmsg_cmd_show
    found_msgs = list(rosmsg_search(rospack, mode, arg))
  File "/opt/ros/lunar/lib/python2.7/dist-packages/rosmsg/__init__.py", line 565, in rosmsg_search
    for p, path in iterate_packages(rospack, mode):
  File "/opt/ros/lunar/lib/python2.7/dist-packages/rosmsg/__init__.py", line 541, in iterate_packages
    package_paths = _get_package_paths(p, rospack)
  File "/opt/ros/lunar/lib/python2.7/dist-packages/rosmsg/__init__.py", line 554, in _get_package_paths
    results = find_in_workspaces(search_dirs=['share'], project=pkgname, first_match_only=True, workspace_to_source_spaces=_catkin_workspace_to_source_spaces, source_path_to_packages=_catkin_source_path_to_packages)
  File "/opt/ros/lunar/lib/python2.7/dist-packages/catkin/find_in_workspaces.py", line 143, in find_in_workspaces
    source_path_to_packages[source_path] = find_packages(source_path)
  File "/usr/lib/python2.7/dist-packages/catkin_pkg/packages.py", line 83, in find_packages
    packages = find_packages_allowing_duplicates(basepath, exclude_paths=exclude_paths, exclude_subspaces=exclude_subspaces, warnings=warnings)
  File "/usr/lib/python2.7/dist-packages/catkin_pkg/packages.py", line 110, in find_packages_allowing_duplicates
    packages[path] = parse_package(os.path.join(basepath, path), warnings=warnings)
  File "/usr/lib/python2.7/dist-packages/catkin_pkg/package.py", line 379, in parse_package
    return parse_package_string(f.read(), filename, warnings=warnings)
  File "/usr/lib/python2.7/dist-packages/catkin_pkg/package.py", line 550, in parse_package_string
    raise InvalidPackage('Error(s) in %s:%s' % (filename, ''.join(['\n- %s' % e for e in errors])))
catkin_pkg.package.InvalidPackage: Invalid package manifest "/home/enslab/catkin_ws/src/beginner_tutorials/package.xml": Error(s) in /home/enslab/catkin_ws/src/beginner_tutorials/package.xml:
- The manifest (with format version 1) must not contain the following tags: exec_depend

In a youtube video ( https://www.youtube.com/watch?v=F4bpT... ) I saw

<run_depend>message_runtime</run_depend>

was used instead. This worked perfectly fine for me.

What is the difference between the two of them exactly? Thanks in advance.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
8

answered 2018-02-19 07:29:47 -0500

l4ncelot gravatar image

updated 2018-02-19 07:33:31 -0500

It is new convention in catkin package format 2. Basically the <run_depend> tag was replaced by <exec_depend>.

To define format 2 package replace <package> tag in your package.xml file with <package format="2">.

For more information have a look at the documentation here and migration guide from format 1 to format 2 here.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2018-02-19 06:23:06 -0500

Seen: 12,999 times

Last updated: Feb 19 '18