Qt子模块定义信号后,需要重新编译链接到正确的库

news/2024/7/5 8:03:58

publicdata.obj👎 error: LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl PublicData::metaObject(void)const " (?metaObject@PublicData@@UEBAPEBUQMetaObject@@XZ)
上面的报错的原因是什么?
第一眼,看过去,很熟悉了,元对象的使用嘛,无非没有就两个原因:没有继承 QObject, 没有声明宏Q_OBJECT;

重新编译,还是报错,重新构建就好了。
原因:需要重新编译链接到正确的库。
以下是Chatgpt的回答:
这个错误消息表示您的代码存在未解析的外部符号 metaObject。这可能是由于缺少类定义的元对象导致的。

为了解决此问题,您需要在包含PublicData类的头文件中添加Q_OBJECT宏。这个宏声明了一个类似于元对象的结构以支持信号和槽机制在该类及其子类中的使用。

例如,在PublicData类中,将其声明为:

class PublicData : public QObject
{
Q_OBJECT
//…
};

重新编译您的代码并链接到正确的库,这个问题应该就会得到解决。


http://lihuaxi.xjx100.cn/news/1010982.html

相关文章

【模型复现】Network in Network,将1*1卷积引入网络设计,运用全局平均池化替代全连接层。模块化设计网络

《Network In Network》是一篇比较老的文章了(2014年ICLR的一篇paper),是当时比较厉害的一篇论文,同时在现在看来也是一篇非常经典并且影响深远的论文,后续很多创新都有这篇文章的影子。[1312.4400] Network In Networ…

ambari源码分析 -----ambari-server启动流程

一、启动脚本分析 1、ambari的启动脚本为:service ambari-server start 或者 ambari-server start。分别对应脚本文件/etc/init.d/ambari-server 和 /usr/sbin/ambari-server,其中/usr/sbin/ambari-server文件是一个快捷方式,指向/etc/init.d…

Ubuntu常用环境配置

配置软件源 切换清华源 sudo sed -i "shttp://.*archive.ubuntu.comhttps://mirrors.tuna.tsinghua.edu.cng" /etc/apt/sources.list sudo sed -i "shttp://.*security.ubuntu.comhttps://mirrors.tuna.tsinghua.edu.cng" /etc/apt/sources.list sudo ap…

Scrapy-爬虫多开技能

我们知道,现在运行Scrapy项目中的爬虫文件,需要一个一个地运行,那么是否可以将对应的爬虫文件批量运行呢?如果可以,又该怎么实现呢?在Scrapy中,如果想批量运行爬虫文件,常见的有两种…

IPv4 和 IPv6 的组成结构和对比

IPv4 和 IPv6 的组成结构和对比IPv4IPv6互联网协议 (IP) 是互联网通信的基础,IP 地址是互联网上每个设备的唯一标识符。目前最常用的 IP 协议是 IPv4,它已经有近 30 年的历史了。然而,IPv4 存在一些问题,例如: 地址空间不足:IPv4 …

向量的内积外积哈达玛积

1.向量的内积 1.1 定义 从代数角度看&#xff0c;先对两个数字序列中的每组对应元素求积&#xff0c;再对所有积求和&#xff0c;结果即为点积。从几何角度看&#xff0c;点积则是两个向量的长度与它们夹角余弦的积。 表示形式&#xff1a;ATBA^TBATB、<A,B><A,B&g…

[学习笔记]金融风控实战

参考资料&#xff1a; 零基础入门金融风控-贷款违约预测 导包 import pandas as pd import matplotlib.pyplot as plt# 读取数据 train pd.read_csv(train.csv) testA pd.read_csv(testA.csv) print(Train data shape:, train.shape) print(testA data shape:, testA.shape…

我的面试八股(JAVA并发)

程序计数器为什么是线程私有的? 程序计数器主要有下面两个作用&#xff1a; 字节码解释器通过改变程序计数器来依次读取指令&#xff0c;从而实现代码的流程控制&#xff0c;如&#xff1a;顺序执行、选择、循环、异常处理。在多线程的情况下&#xff0c;程序计数器用于记录…