ros中message_filters编译问题

ros中message_filters编译问题

参考链接: link.
平台 ros melodic

问题描述

CMakeFiles/avoidance_sub.dir/src/avoidance_sub.cpp.o: In function message_filters::Synchronizer<message_filters::sync_policies::ApproximateTime<geometry_msgs::Vector3Stamped_<std::allocator<void> >, geometry_msgs::Vector3Stamped_<std::allocator<void> >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType> >::disconnectAll()': avoidance_sub.cpp:(.text._ZN15message_filters12SynchronizerINS_13sync_policies15ApproximateTimeIN13geometry_msgs15Vector3Stamped_ISaIvEEES6_NS_8NullTypeES7_S7_S7_S7_S7_S7_EEE13disconnectAllEv[_ZN15message_filters12SynchronizerINS_13sync_policies15ApproximateTimeIN13geometry_msgs15Vector3Stamped_ISaIvEEES6_NS_8NullTypeES7_S7_S7_S7_S7_S7_EEE13disconnectAllEv]+0x43): undefined reference tomessage_filters::Connection::disconnect()’
CMakeFiles/avoidance_sub.dir/src/avoidance_sub.cpp.o: In function message_filters::Connection message_filters::Signal9<geometry_msgs::Vector3Stamped_<std::allocator<void> >, geometry_msgs::Vector3Stamped_<std::allocator<void> >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>::addCallback<boost::shared_ptr<geometry_msgs::Vector3Stamped_<std::allocator<void> > const> const&, boost::shared_ptr<geometry_msgs::Vector3Stamped_<std::allocator<void> > const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&>(boost::function<void (boost::shared_ptr<geometry_msgs::Vector3Stamped_<std::allocator<void> > const> const&, boost::shared_ptr<geometry_msgs::Vector3Stamped_<std::allocator<void> > const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&, boost::shared_ptr<message_filters::NullType const> const&)> const&)': avoidance_sub.cpp:(.text._ZN15message_filters7Signal9IN13geometry_msgs15Vector3Stamped_ISaIvEEES4_NS_8NullTypeES5_S5_S5_S5_S5_S5_E11addCallbackIRKN5boost10shared_ptrIKS4_EESD_RKNS9_IKS5_EESH_SH_SH_SH_SH_SH_EENS_10ConnectionERKNS8_8functionIFvT_T0_T1_T2_T3_T4_T5_T6_T7_EEE[_ZN15message_filters7Signal9IN13geometry_msgs15Vector3Stamped_ISaIvEEES4_NS_8NullTypeES5_S5_S5_S5_S5_S5_E11addCallbackIRKN5boost10shared_ptrIKS4_EESD_RKNS9_IKS5_EESH_SH_SH_SH_SH_SH_EENS_10ConnectionERKNS8_8functionIFvT_T0_T1_T2_T3_T4_T5_T6_T7_EEE]+0x191): undefined reference tomessage_filters::Connection::Connection(boost::function<void ()> const&)’
CMakeFiles/avoidance_sub.dir/src/avoidance_sub.cpp.o: In function message_filters::Connection message_filters::SimpleFilter<geometry_msgs::Vector3Stamped_<std::allocator<void> > >::registerCallback<ros::MessageEvent<geometry_msgs::Vector3Stamped_<std::allocator<void> > const> const&>(boost::function<void (ros::MessageEvent<geometry_msgs::Vector3Stamped_<std::allocator<void> > const> const&)> const&)': avoidance_sub.cpp:(.text._ZN15message_filters12SimpleFilterIN13geometry_msgs15Vector3Stamped_ISaIvEEEE16registerCallbackIRKN3ros12MessageEventIKS4_EEEENS_10ConnectionERKN5boost8functionIFvT_EEE[_ZN15message_filters12SimpleFilterIN13geometry_msgs15Vector3Stamped_ISaIvEEEE16registerCallbackIRKN3ros12MessageEventIKS4_EEEENS_10ConnectionERKN5boost8functionIFvT_EEE]+0xba): undefined reference tomessage_filters::Connection::Connection(boost::function<void ()> const&)’
collect2: error: ld returned 1 exit status
avoidance/CMakeFiles/avoidance_sub.dir/build.make:113: recipe for target ‘/home/ljn/ROS/avoidance/catkin_ws/devel/lib/avoidance/avoidance_sub’ failed
make[2]: *** [/home/ljn/ROS/avoidance/catkin_ws/devel/lib/avoidance/avoidance_sub] Error 1
CMakeFiles/Makefile2:1592: recipe for target ‘avoidance/CMakeFiles/avoidance_sub.dir/all’ failed
make[1]: *** [avoidance/CMakeFiles/avoidance_sub.dir/all] Error 2
Makefile:140: recipe for target ‘all’ failed
make: *** [all] Error 2
Invoking “make -j4 -l4” failed

解决方法

在CMakeLists.txt中添加

find_package( catkin REQUIRED COMPONENTS
	 ...
	message_filters
)

在package.xml文件中添加相关依赖

find_package( catkin REQUIRED COMPONENTS
	<build_depend>message_filters</build_depend>
	<build_export_depend>message_filters</build_export_depend>
	<exec_depend>message_filters</exec_depend>
)
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ROS的laser_filters软件包是一个用于激光扫描数据过滤和处理的工具包。它提供了一些常用的滤波器和处理器,可以帮助你处理激光扫描数据,以获得更准确和可靠的结果。 要学习laser_filters软件包,你可以按照以下步骤进行: 1. 安装ROS:首先,确保你已经安装了ROS (Robot Operating System)。你可以根据你的操作系统版本在ROS官方网站上找到安装指南。 2. 下载laser_filters软件包:一旦你安装了ROS,你可以使用以下命令下载和安装laser_filters软件包: ``` $ sudo apt-get install ros-<distro>-laser-filters ``` 在上述命令,`<distro>` 是你所使用的ROS发行版的名称,比如`melodic`或`noetic`。 3. 学习文档和示例:laser_filters软件包的文档和示例可以在ROS官方文档网站上找到。你可以阅读文档以了解软件包的功能和用法,并参考示例程序来理解如何使用各种滤波器和处理器。 在ROS官方文档网站上,你可以找到laser_filters软件包的API文档、教程和示例代码。这些资源将帮助你学习如何在ROS使用laser_filters软件包来处理激光扫描数据。 4. 实践和调试:学习了软件包的基本用法后,你可以开始实践并调试你自己的代码。尝试在ROS环境加载laser_filters软件包并使用其的滤波器和处理器来处理实际的激光扫描数据。 你可以尝试不同的滤波器和处理器,并根据需要进行参数调整,以获得最佳的结果。通过实践和调试,你将更好地理解laser_filters软件包的功能和使用方法。 希望这些步骤能帮助你开始学习ROS的laser_filters软件包!如果你有任何进一步的问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值