关于使用catkin_make无法找到自定义消息的头文件的问题

问题描述

错误代码:.../utils.h:22:10: fatal error: multi_turtlebot3_navigation/RunState.h: No such file or directory #include "multi_turtlebot3_navigation/RunState.h"
其中RunState是我自定义的message类型,位于要编译的包目录下的msg文件夹下。将整个包从源码重新编译的时候出现找不到头文件的问题。

解决办法

在解决之前CMakeLists.txt中已经包含以下条目:

find_package(catkin REQUIRED
  COMPONENTS
  roscpp
  rospy
  sensor_msgs
  geometry_msgs
  tf
  actionlib
  actionlib_msgs
  std_msgs
  message_generation
 )
 ...
 add_message_files(
   FILES
   RunState.msg
 )
 ...
generate_messages(
   DEPENDENCIES
   ...
   std_msgs
 )
...
catkin_package(
   ...
   message_runtime
)

后面包含若干可执行以及库,其中部分可执行和库使用了RunState.msg,使用了条目#include "multi_turtlebot3_navigation/RunState.h

接下来只要对相应的可执行和库使用
add_dependencies(target ${${PROJECT_NAME}_EXPORTED_TARGETS})
即可。
其中target为相应的库或者可执行的name。
举例:

add_library(multi_nav_utils
   src/utils.cpp
 )
add_dependencies(multi_nav_utils ${${PROJECT_NAME}_EXPORTED_TARGETS}) 

其中在utils.cpp中使用了该message的头文件。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值