在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 ()这个 功能可能是 让其它 文件可以定用这个库

那么还有个问题 ,要想用其它功能包的 类的 函数 怎么办?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月照银海似蛟龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值