微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

调用“make cmake_check_build_system”失败

如何解决调用“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 举报,一经查实,本站将立刻删除。