add_message_files() directory not found:

ROS在添加msg文件时发生找不到目录的错误

CMake Error at /opt/ros/melodic/share/genmsg/cmake/genmsg-extras.cmake:94 (message):
  add_message_files() directory not found:
  /home/vector/Robot/catkin_ws/src/learning_communication/msg
Call Stack (most recent call first):
  learning_communication/CMakeLists.txt:51 (add_message_files)

CMakeLists.txt中的文件的写法:

## Generate messages in the 'msg' folder
add_message_files(
  FILES
  Person.msg    # 自定义的消息文件
  # Message1.msg
  # Message2.msg
)

猜测:add_message_files是默认在package_name/src目录下寻找.msg文件的,会发生找不到的情况,但是我的.msg文件是放在package_name/src/msg目录下的,所以需要指出目录,将上面的修改为:

## Generate messages in the 'msg' folder
add_message_files(
  DIRECTORY src/msg      # 文件的目录, 默认在src下面,需要指明地址
  FILES
  Person.msg
  # Message1.msg
  # Message2.msg
)

Could not find msg ‘Person’

如果按照上面的设置,虽然可以编译成功,但是使用下面的命令,无法找到

[xxx@xxx:~/Robot/catkin_ws → master]$ rosmsg show Person
Could not find msg 'Person'

经过痛苦的研究发现,.msg文件一般放在package_name/msg/目录下,移动之后,修改CMakeLists.txt如下即可:

## Generate messages in the 'msg' folder
add_message_files(
  DIRECTORY msg      # 文件的目录, 默认在src下面,需要指明地址
  FILES
  Person.msg
  # Message1.msg
  # Message2.msg
)

再次查看的结果:

[xxx@xxx:~/Robot/catkin_ws → master]$ rosmsg show Person
[learning_communication/Person]:
uint8 unknown=0
uint8 male=1
uint8 female=2
string name
uint8 sex
uint8 age
  • 19
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值