当前位置: 首页 > news >正文

【ROS2】编译Qt实现的库,然后链接该库时,报错:/usr/bin/ld: XXX undefined reference to `vtable for

1、问题描述

在ROS2工程中,编译使用Qt实现的库,在其它ROS2包链接该库时,报错:

/usr/bin/ld: XXX undefined reference to `vtable for

2、原因分析

查看链接失败的几个函数接口都是,信号函数(signals 标记的函数)。因为信号函数都只有定义,没有实现,在执行ROS2 colcon build 时,没有对信号函数做元编译(moc)处理,所以在使用到该信号函数时,就会报错。

colcon build 编译时,为什么没有对信号函数做元编译(moc)处理呢?
查看 CMakeLists.txt ,发现 add_library 函数只使用源文件,没有指定头文件

add_library(laoer_library ${SOURCES})

而元编译(moc)处理需要检索头文件中的 Q_OBJECT、signals、slots等关键词。

3、解决方法

1)使用Qt相关编译器

set(CMAKE_AUTOUIC ON)
set(CMAKE

相关文章:

  • 密码学实验:凯撒密码
  • mysql 字段类型解释
  • Linux基础 -- 在内存中使用chroot修复eMMC
  • Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(七)
  • OpenCV CUDA模块中矩阵操作------矩阵元素求和
  • 每日算法刷题计划Day7 5.15:leetcode滑动窗口4道题,用时1h
  • STM32单片机内存分配详细讲解
  • 使用gitbook 工具编写接口文档或博客
  • 【C++】汇编角度分析栈攻击
  • 一文读懂--程序的编译汇编和链接
  • Datawhale 5月llm-universe 第2次笔记
  • Vue 3中ref
  • css画图形
  • BUUCTF——web刷题第一页题解
  • 漂亮的收款打赏要饭网HTML页面源码
  • leetcode-hot-100 (子串)
  • Apple Vision Pro空间视频创作革命:从180度叙事到沉浸式语法的重构——《Adventure》系列幕后技术深度解析
  • [c++项目]云备份项目测试
  • 抢购Python代码示例与技术解析
  • Java中的设计模式
  • 龚正市长调研闵行区,更加奋发有为地稳增长促转型,久久为功增强发展后劲
  • 沪指跌0.68%报3380.82点,创指跌1.92%:券商、军工跌幅靠前
  • 工商银行杭州金融研修院原院长蒋伟被“双开”
  • 宜昌谱写新叙事:长江大保护与高质量发展如何相互成就
  • 从能源装备向应急装备蓝海拓展,川润股份发布智能综合防灾应急仓
  • 中国至越南河内国际道路运输线路正式开通