当前位置: 首页 > 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
http://www.dtcms.com/a/192484.html

相关文章:

  • 密码学实验:凯撒密码
  • 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中的设计模式
  • C++:字符数组与字符串指针变量的大小
  • 35页AI应用PPT《DeepSeek如何赋能职场应用》DeepSeek本地化部署与应用案例合集
  • 【论文阅读】BEVFormer
  • P8803 [蓝桥杯 2022 国 B] 费用报销
  • TypeScript中文文档
  • 【Java项目脚手架系列】第七篇:Spring Boot + Redis项目脚手架
  • 配置别名路径 @
  • ArcGIS切片方案记录bundle文件
  • 机器学习笔记3
  • 【iOS】alloc的实际流程