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