调用“make cmake_check_build_system”失败

问题描述

```
   File "/opt/ros/melodic/lib/python2.7/dist-packages/genmsg/msg_loader.py",line 266,in load_msg_from_string
    field_type,name = _load_field_line(orig_line,package_name)
  File "/opt/ros/melodic/lib/python2.7/dist-packages/genmsg/msg_loader.py",line 225,in _load_field_line
    raise InvalidMsgSpec("Invalid declaration: %s"%(orig_line))
genmsg.base.InvalidMsgSpec: Invalid declaration: ...
CMake Error at /opt/ros/melodic/share/catkin/cmake/safe_execute_process.cmake:11 (message):
  execute_process(/home/akash/catkin_ws/build/catkin_generated/env_cached.sh
  "/usr/bin/python2" "/usr/bin/empy" "--raw-errors" "-F"
  "/home/akash/catkin_ws/build/service_node/cmake/service_node-genmsg-context.py"
  "-o"
  "/home/akash/catkin_ws/build/service_node/cmake/service_node-genmsg.cmake"
  "/opt/ros/melodic/share/genmsg/cmake/pkg-genmsg.cmake.em") returned error
  code 1
Call Stack (most recent call first):
  /opt/ros/melodic/share/catkin/cmake/em_expand.cmake:25 (safe_execute_process)
  /opt/ros/melodic/share/genmsg/cmake/genmsg-extras.cmake:303 (em_expand)
  service_node/CMakeLists.txt:71 (generate_messages)


-- Configuring incomplete,errors occurred!
See also "/home/akash/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/akash/catkin_ws/build/CMakeFiles/CMakeError.log".
Makefile:404: recipe for target 'cmake_check_build_system' Failed
make: *** [cmake_check_build_system] Error 1
Invoking "make cmake_check_build_system" Failed

所以我是 ros 的新手,我正在学习一个教程,我创建了一个名为 service_node 的包,然后在其中创建了一个名为 AddTwoInts.srv 的 srv

int64 a
int64 b
...
int64 sum

然后它让我创建一个名为 client.py 的脚本

#!/usr/bin/env python
from __future__ import print_function
import sys
import rospy
from service_node.srv import *



def add_two_ints_client(x,y):
    rospy.wait_for_service('add_two_ints')
    try:
        add_two_ints = rospy.ServiceProxy('add_two_ints',AddTwoInts)
        resp1 = add_two_ints(x,y)
        return resp1.sum
    except rospy.ServiceException as e:
        print("Service call Failed: %s"%e)

def usage():
return "%s [x y]"%sys.argv[0]


if __name__ == "__main__":
    if len(sys.argv) == 3:
        x = int(sys.argv[1])
        y = int(sys.argv[2])
    else:
        print(usage())
        sys.exit(1)
    print("Requesting %s+%s"%(x,y))
    print("%s + %s = %s"%(x,y,add_two_ints_client(x,y)))

一个 server.py

#!/usr/bin/env python

from __future__ import print_function

from service_node.srv import AddTwoInts,AddTWoIntsResponse
import rospy
def handle_add_two_inst(req):
    print("Returning [%s + %s = %s]"%(req.a,req.b,(req.a + req.b)))
    return AddTwoIntsResponse(req.a + req.b)
def add_two_ints_server():
    rospy.init_node('add_two_ints_server')
    s= rospy.Service('add_two_ints',AddTwoInts,handle_add_two_ints)
    print("Ready to add two ints.")
    rospy.spin()

if __name__ == "__main__":
    add_two_ints_server()

然后我对 cmakelist 做了一些改动

例如无缩进的 add_service_files

add_service_files(
   FILES
   AddTwoInts.srv
#   Service2.srv
 )

generate_messages(
   DEPENDENCIES
   std_msgs
 )

find_package(catkin required COMPONENTS
  message_generation
  rospy
  std_msgs
)

 catkin_install_python(PROGRAMS
   scripts/server.py scripts/client.py
   DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
 )

我也编辑了 pacakge.xml 并取消了 message_runtime 的缩进

当我尝试跑步时

catkin_make

知道为什么我收到错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)