在ROS 中 功能包 中将类的函数定义 与 声明 分开 文件写 用main.cpp 调用 如何配置 CmakeList.txt

本文涉及的产品
资源编排,不限时长
简介: 在ROS 中 功能包 中将类的函数定义 与 声明 分开 文件写 用main.cpp 调用 如何配置 CmakeList.txt

需要配置 CmakeList.txt

遇到问题的工程 这样搞了下

add_library(quadrotor_control_for_fengdian_class src/QuadrotorControl.cpp )
target_link_libraries(quadrotor_control_for_fengdian_class ${catkin_LIBRARIES})


add_executable(quadrotor_control src/main.cpp )      #生成可执行文件          swivel_gimbal_controller_cmd_publisher  节点的名字
add_dependencies(quadrotor_control mastering_ros_demo_pkg_generate_messages_cpp)   #必须添加add_dependencies,否则找不到自定义的msg产生的头文件
target_link_libraries(quadrotor_control quadrotor_control_for_fengdian_class ${catkin_LIBRARIES})

理解
在这里插入图片描述
这个是添加一个 库 第一个参数 就是自定义的库的名字 第二个参数 就是生成库用的cpp , 就是 类 的定义 文件

在这里插入图片描述
新增的库名和 catkin库做 连接

在这里插入图片描述
将main 函数 生成可执行文件 ,供 rosrun 调用

在这里插入图片描述
如注释,添加依赖
在这里插入图片描述
这个也必须要加 , main 函数生成的可执行文件命和 类定义cpp生成的库 放这里

一次工程实践 相关 记录

1、类的声明和定义分开文件下, 按 之前那么处理 分布查看
只加这个 先 生成 library
在这里插入图片描述
编译成功 类的声明 和函数定义分开写的
在这里插入图片描述
生成了这个文件

继续加main.cpp的
只加这个
在这里插入图片描述
报错 很多都没定义
在这里插入图片描述
加上这个
在这里插入图片描述
这一条最后去掉了编译也成功 ,在使用自己的msg头文件时,必须添加add_dependencies,否则找不到自定义的msg产生的头文件

报错一样
再加
在这里插入图片描述
报错变了 没有了ros::init()这种未定义了 说明 必须要 加上面的 是最基本的
在这里插入图片描述
现在的错误就是没有找到类的定义的函数

把这个库加上
在这里插入图片描述
还是没找到 和之前报错一样

给上面那个 类的 定义 那个库 也加上 target_link_libraries
在这里插入图片描述
编译就通过了
target_link_libraries ()这个 功能可能是 让其它 文件可以定用这个库

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
3月前
|
机器人 C++ Python
ROS2教程 02 功能包
本文是关于ROS2(机器人操作系统2)中功能包(package)管理的教程,介绍了如何检查功能包的依赖、创建新功能包、列出可执行文件、列出所有功能包、查询功能包的位置和描述信息,以及为C++和Python功能包配置必要的文件。
102 0
|
3月前
|
XML 存储 机器人
06 ROS配置launch文件
本文介绍了如何在ROS(机器人操作系统)中配置launch文件,包括设置节点、参数、局部变量、重映射以及嵌套launch文件的方法,并通过XML格式实现了多节点的一键配置与启动。
62 0
|
3月前
|
XML 存储 网络安全
ROS入门(二):launch文件解析
该文章是关于ROS入门的第二篇教程,详细解析了ROS中的launch文件,包括其运行方式、XML格式规范、标签使用、参数替代、条件属性以及通过简单和复杂案例来演示launch文件的使用,最后介绍了如何在参数服务器上设置参数。
ROS入门(二):launch文件解析
|
3月前
|
存储 Ubuntu 安全
ROS2教程02 ROS2的安装、配置和测试
本文是关于ROS2(机器人操作系统2)的安装、配置和测试的教程。内容包括使用一键安装脚本快速安装ROS2 Humble版,手动安装步骤,设置语言环境、添加软件源、更新软件包、安装ROS2桌面版和开发工具,配置ROS2环境,创建工作空间,配置ROS2领域以避免网络冲突,以及如何删除ROS2。此外,还包括了测试ROS2是否安装成功的两个案例:基本的Topic通信测试和使用Turtlesim演示程序。适用于Ubuntu 22.04操作系统。
281 1
ROS2教程02 ROS2的安装、配置和测试
|
3月前
|
Ubuntu Shell C++
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
193 1
|
3月前
|
Ubuntu 机器人 测试技术
奥比中光 Femto Bolt相机ROS配置
这篇文章介绍了奥比中光Femto Bolt相机在ROS1 Noetic和ROS2 Humble环境下的配置过程,包括自动脚本和手动配置方法,适用于Ubuntu 20.04/22.04系统和Jetson Orin平台。
147 0
奥比中光 Femto Bolt相机ROS配置
|
3月前
|
机器人 Shell 开发者
ROS2教程08 ROS2的功能包、依赖管理、工作空间配置与编译
这篇文章是关于ROS2(Robot Operating System 2)中功能包、依赖管理、工作空间配置和编译的教程,涵盖了ROS2工作空间的概念、如何获取和安装功能包的依赖、构建工作空间的步骤,以及如何创建和管理ROS2功能包,包括使用命令行工具对功能包进行操作的方法。
396 0
ROS2教程08 ROS2的功能包、依赖管理、工作空间配置与编译
|
3月前
|
传感器 NoSQL 算法
ROS Moveit 配置全网最详细教程
本文是关于ROS Moveit配置的全网最详细教程,提供了一键安装脚本,以及如何使用Moveit进行机器人运动规划的详细步骤和说明。文中还深入解析了Moveit的配置包文件、Moveit的源码,以及如何使用不同的运动规划算法(如CHOMP、LERP、STOMP)进行路径规划。
235 0
ROS Moveit 配置全网最详细教程
|
3月前
|
存储 缓存
02 ROS创建工作空间和功能包
如何在ROS中创建工作空间和功能包,包括初始化工作空间、编译、设置环境变量以及使用`catkin_create_pkg`创建新功能包的步骤。
56 1
|
1月前
|
Ubuntu 机器人 Linux

推荐镜像

更多
下一篇
无影云桌面