ROS学习笔记10——自定义源文件调用

调用自定义源文件的时候需要配置cmakelists文件,刚学感觉还挺繁琐,用一个小案例记录一下。

1、随便写个头文件

在功能包的 include/功能包名 目录下创建一个头文件

记得在 .vscode 下 c_cpp_properties.json 的 includepath属性中把路径加进去

#ifndef _HELLO_H
#define _HELLO_Hnamespace hello_ns{class MyHello
{
public:void run();
};}#endif

2、随便写个源文件

在src目录下建一个源文件hello_src.cpp

同样的记得在c_cpp_properties.json文件中配置路径

#include "ros/ros.h"
#include "plumbing_head/hello.h"namespace hello_ns{void MyHello::run(){ROS_INFO("run函数执行");}
}

3、随便写个可执行文件

在src目录下建一个hello.cpp

这里没有include hello_src.cpp,肯定关联不到

#include "ros/ros.h"
#include "plumbing_head/hello.h"int main(int argc, char *argv[])
{/* code */setlocale(LC_ALL, "");ros::init(argc,argv,"hello_head");hello_ns::MyHello h;h.run();return 0;
}

4、配置文件

4.1 头文件和源文件配置

##1、指定头文件位置
include_directories(
include${catkin_INCLUDE_DIRS}
)##2、声明C++库
add_library(head_src    ##给库起个名字include/${PROJECT_NAME}/hello.hsrc/hello_src.cpp
)##3、添加可执行文件的cmake目标依赖项
add_dependencies(head_src ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})##4、指定要链接库或可执行目标的库
target_link_libraries(head_src${catkin_LIBRARIES}
)

4.2 可执行文件配置

add_executable(hello src/hello.cpp)add_dependencies(hello ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})##需要把C++文件库加进来
target_link_libraries(hellohead_src${catkin_LIBRARIES}
)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV书签 #余弦相似度的原理与相似图片/相似文件搜索实验

1. 介绍 余弦相似度(Cosine Similarity),又称为余弦相似性,是通过计算两个向量的夹角余弦值来评估他们的相似度。余弦相似度仅仅与向量的指向方向相关,与向量的长度无关,它将向量根据坐标值绘制到向量空间…

HJ10 字符个数统计【C语言】

【华为机试题 HJ10】字符个数统计 描述输入描述:输出描述:示例1示例2参考代码1描述 编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次 例…

1130 - Host 182.244.45,94‘ is not allowed to connect to this MySQL server

1130 - Host 182.244.45,94’ is not allowed to connect to this MySQL server MySQL错误代码 1130 表明连接 MySQL 服务器的主机被拒绝。在这个错误消息中,你提到的是主机 “182.244.45.94”,但可能有一个小错误,IP 地址中的逗号应该是点&…

5、直方图和密度图(数据分布)

创建直方图和密度图 在本教程中,您将了解有关直方图和密度图的所有知识。 文章目录 1、设置笔记本2、直方图3、密度图4、2D KDE 图4、颜色编码的图1、设置笔记本 我们首先设置编程环境。(此代码是隐藏的,但你可以通过点击此文本右侧的 “Code” 按钮来显示它。) In [1]: i…

SpringBoot3集成Zookeeper

一、简介 ZooKeeper是一个集中的服务,用于维护配置信息、命名、提供分布式同步、提供组服务。分布式应用程序以某种形式使用所有这些类型的服务。 二、环境搭建 1、修改配置文件 # 1、拷贝一份样本配置文件 cp zookeeper-3.8.3/conf/zoo_sample.cfg zookeeper-3.8.3/conf/…

【笔记】Android Telephony | SIM 卡管理和subId、slotId、phoneId 定义关系说明

相关业务背景 DSDS双卡双待 :手机可以插入两张手机卡,而且能同时待机,但是某一时刻只能有一张卡上有电话。 一个SIM卡代表一个账号,那么双卡手机就意味着多账户,需要增加多账户管理和业务处理。 账号管理&#xff1…

【Java 设计模式】行为型之责任链模式

文章目录 1. 定义2. 应用场景3. 代码实现结语 责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,用于将请求发送者和接收者解耦,使得多个对象都有机会处理请求。责任链模式通过创建一个处理请求的链,…

【STM32】STM32学习笔记-W25Q64简介(37)

00. 目录 文章目录 00. 目录01. SPI简介02. W25Q64简介03. 硬件电路04. W25Q64框图05. Flash操作注意事项06. 预留07. 附录 01. SPI简介 在大容量产品和互联型产品上,SPI接口可以配置为支持SPI协议或者支持I 2 S音频协议。SPI接口默认工作在SPI方式,可以…

(2)(2.4) CRSF/ELRS Telemetry

文章目录 前言 1 ArduPilot 参数编辑器 前言 !Note ELRS(ExpressLRS)遥控系统使用穿越火线协议,连接方式类似。不过,它不像穿越火线那样提供双向遥测。 TBS CRSF 接收机与 ArduPilot 的接口中包含遥测和遥控信息。…

【 CSS 】HTML5、CSS3 提高

人生犹如航海,不在于船在港口的安全,而在于船能否顺利航行,穿越重重风浪,抵达梦想的彼岸。 1. HTML5新特性 1.1 概述 HTML5 的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。 这些…

Webpack5 基本使用 - 2

常用 loader loader 是辅助打包工具。webpack 默认只能打包 js 文件,打包其它模块就需要配置 loader 来告诉 webpack 该怎么去打包其它文件。loader 可以将文件从不同的语言转换为 JavaScript。一类文件如果需要多个 loader 处理,loader 的执行顺序是从…

vue+openLayers闪烁图形/线段/点 都可以使用类似的方法

本文使用闪烁图形作为实例,线段和点都是类似的原理 基础方法 1.先定义两个样式,闪烁时两个样式相互交换 2.利用定时器(单数的时候样式一,双数的时候样式二)由此来实现闪烁效果 先给主要代码如下(最后有全部…

uniapp vue3版本引用 jsencrypt加密库报错:“default“ is not exported by……

个人产生这个异常的原因:将历史项目(vue2)的jsencrypt文件复制到新项目(vue3)里直接引用报错。存在兼容问题,需要重新安装vue3版本的jsencrypt 安装依赖 npm install jsencrypt页面引入 import { JSEncry…

变压器消谐电阻器测试仪

产品概述 KDZD3000X消谐电阻器参数测试仪能实现自动检测消谐器在电流峰值为0.3mA、0.5mA 、1mA 、3mA 、5mA、10mA时相对应的电压峰值或有效值,并能自动绘制出消谐器伏安特性曲线图。 仪器依据的标准 Q/GDW415-2010《电磁式电压互感器用非线性电阻性消谐器技术规…

计算机二级Python基本排序题-序号45(补充)

1. 文件"singup.txt”中保存了若干条参加运动会学生的报名记录,每条记录的形式为“班级号_学号”,例如"A1_12”,将每个班级报名情按参加运动会人数从多到少排列(假设不存在人数相同的情况)并输出&#xff0c…

畅聊未来:低代码打造在线聊天系统

前言 现代社交网络的普及使得在线聊天成为人们日常生活中不可或缺的一部分。然而,传统的开发方式往往复杂且耗时,因此寻找一种更快捷、灵活且可视化的方法来构建在线聊天系统变得尤为重要。本文将介绍如何利用低代码平台来快速搭建一个功能齐全的在线聊…

存内计算引领新一代技术革新,开启算力新时代

文章目录 存内计算与传统计算的区别 存内计算与传统计算的区别 存内计算芯片的优势 存内计算在各个领域的应用 存内计算技术对未来发展的影响 CSDN存内计算开发者社区:引领新一代技术革新的最前沿 社区内容专业度 社区具备的资源 社区的开放性 社区招募令…

JVM篇----第三篇

系列文章目录 文章目录 系列文章目录前言一、解释 Java 堆空间及 GC?二、JVM 内存区域三、程序计数器(线程私有)前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一…

Intel NUC x15电池独立显卡功耗异常解决办法

买了Intel NUC x15,所有驱动都是安装的官方的驱动,但是电池续航一直尿崩。经过查找资料,发现是独立显卡功耗异常导致,也有用户给出了解决办法,参考NUC X15 显卡待机功耗异常解决方案 - 哔哩哔哩 (bilibili.com)。https…

canvas绘制美国国旗(USA Flag)

查看专栏目录 canvas实例应用100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…