我在ros上用catkin_make编译一个程序包时,系统提示
The manifest(with format version 2) must not contain the following tags:run_depend
意思就是package.xml这个文件里不能有<run_depend>message_runtime</run_depend>这一行
但当我用编辑器删掉package.xml里的这一行,然后编译时,又出现了一个新错误:
CMake Error at........(路径):
catkin_packages depengs on the catkin package 'message_runtime' which must
therefore be listed as a run dependency in the package.xml 
Call Stack.......
请问该怎么解决啊
....

解决方案 »

  1.   

    package.xml文件中有两种格式,对应的书写模式不一样:
    <run_depend>在模式1中的格式为:
    <run_depend>foo</run_depend>
    在模式2中的书写格式为:
    <build_export_depend>foo</build_export_depend>
    <exec_depend>foo</exec_depend>
    你的xml文档应该用的是格式2,而你输入的格式1,所以会出错。改成格式2的书写方式就行了。
    详细链接参照:
    http://docs.ros.org/indigo/api/catkin/html/howto/format2/migrating_from_format_1.html
      

  2.   

    用的catkin不要用下面两行
      <build_depend>message_generation</build_depend>
      <run_depend>message_runtime</run_depend>
    改成下面两句就不会报错了
    <build_export_depend>message_generation</build_export_depend>
    <exec_depend>message_runtime</exec_depend>
      

  3.   

    我这里用的kinetic版本,在文件中添加了这几行命令后,编译成功了,这里主要是要写这么三句
    <build_depend>message_generation</build_depend>
    <build_export_depend>message_generation</build_export_depend>
    <exec_depend>message_runtime</exec_depend>从文件中可以看出来已经没有<run_depend>这种执行文件风格了,exec应该就是替换了之前的run,虽然回复的是一年前的帖子,楼主可能也早就解决了,希望能对后来的遇到同类型的好基友有帮助