利用msg生成头文件时,ROS编译报错:XXX/XXX.h: No such file or directory

2024-08-21 16:44

本文主要是介绍利用msg生成头文件时,ROS编译报错:XXX/XXX.h: No such file or directory,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题:ROS中利用msg文件自动生成头文件未成功,编译报错

我是想让头文件生成在/devel/include里面(可以根据自己的需求改,但是CMakeList.txt和package.xml里面的配置一定要对应)

一、CMakeLists.txt关键配置

1.指定消息文件文件名与自己的文件对应

# 指定消息文件
add_message_files(FILESgps_data.msg
)

2、配置头文件路径

# 包含生成的头文件路径
include_directories(#include                    #ROS包下include文件夹路径${catkin_INCLUDE_DIRS}      #包含std_msg.h等头文件目录${CATKIN_DEVEL_PREFIX}/include  # 包含 devel/include 目录
)

(1)第一条指令include,是指包下的include文件夹,一般用于存放,自己编写的头文件,因为我没有自己写的头文件,所以这里我第一条指令注释了

(2)第二条指令是把std_msg.h等头文件路径包含进去

(3)第三条指令,利用msg自动生成的头文件是存放在/devel/include下,所以将其路径包含进去。

3、声明包的依赖关系

catkin_package(CATKIN_DEPENDS message_runtime std_msgs#INCLUDE_DIRS include ${CATKIN_DEVEL_PREFIX}/include  # 确保包含路径INCLUDE_DIRS ${CATKIN_DEVEL_PREFIX}/include
)

这个指令里面的路径需要和上面对应,因为上面我包含的路径是/devel/include,所以我的路径设置的是第三条指令,如果你上面包含的是ROS包下的include文件夹和/devel/include文件夹,那就用第二条指令,为啥不需要包含 ${catkin_INCLUDE_DIRS} 这个的路径呢?我不知道,据说这个路径省略不写。

二、package.xml配置

package.xml文件中需要包含对message_generation和message_runtime的依赖

<build_depend>message_generation</build_depend>
<exec_depend>message_generation</exec_depend>
<exec_depend>message_runtime</exec_depend>

三、进入工作空间,重现编译(默认roscore了)

cd ~/workspace_name        #进入工作空间
source devel/setup.bash    #配置环境
catkin_make                 #全部重新编译
catkin_make --pkg  package_name   #只编译package_name包

这篇关于利用msg生成头文件时,ROS编译报错:XXX/XXX.h: No such file or directory的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1093716

相关文章

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

Python使用python-pptx自动化操作和生成PPT

《Python使用python-pptx自动化操作和生成PPT》这篇文章主要为大家详细介绍了如何使用python-pptx库实现PPT自动化,并提供实用的代码示例和应用场景,感兴趣的小伙伴可以跟随小编... 目录使用python-pptx操作PPT文档安装python-pptx基础概念创建新的PPT文档查看

Java报错:org.springframework.beans.factory.BeanCreationException的五种解决方法

《Java报错:org.springframework.beans.factory.BeanCreationException的五种解决方法》本文解析Spring框架中BeanCreationExce... 目录引言一、问题描述1.1 报错示例假设我们有一个简单的Java类,代表一个用户信息的实体类:然后,

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

Python实现数据可视化图表生成(适合新手入门)

《Python实现数据可视化图表生成(适合新手入门)》在数据科学和数据分析的新时代,高效、直观的数据可视化工具显得尤为重要,下面:本文主要介绍Python实现数据可视化图表生成的相关资料,文中通过... 目录前言为什么需要数据可视化准备工作基本图表绘制折线图柱状图散点图使用Seaborn创建高级图表箱线图热

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

SQLServer中生成雪花ID(Snowflake ID)的实现方法

《SQLServer中生成雪花ID(SnowflakeID)的实现方法》:本文主要介绍在SQLServer中生成雪花ID(SnowflakeID)的实现方法,文中通过示例代码介绍的非常详细,... 目录前言认识雪花ID雪花ID的核心特点雪花ID的结构(64位)雪花ID的优势雪花ID的局限性雪花ID的应用场景