ROS Melodic执行catkin_make报cmake_check_build_system失败如何解决
报错原因
报错日志中genmsg.base.InvalidMsgSpec: Invalid declaration: ...已经直接指向了问题根源:你编写的AddTwoInts.srv文件不符合ROS服务定义的语法规范。
ROS的.srv文件要求用---(三个半角减号)作为固定分隔符,区分服务的请求参数段和响应结果段。你在文件中写入的...属于非法声明,ROS的消息生成工具无法识别该内容,因此触发编译失败。你其余的CMakeLists.txt、package.xml配置均无错误。
解决方法
- 修改
AddTwoInts.srv文件,将占位用的...替换为三个半角减号,修改后文件内容如下:
int64 a int64 b --- int64 sum
- 清理工作空间中之前编译生成的残留缓存,避免旧配置干扰:
在工作空间根目录执行命令:
rm -rf build/ devel/
- 重新执行编译即可正常构建:
catkin_make
内容的提问来源于stack exchange,提问作者Akash
相关产品推荐
相关产品推荐

