自定义继承自QSciScintilla的类,出现使用VS的MSVC编译器编译失败的问题

Qt5:LNK2001: 无法解析的外部符号 “public: static struct QMetaObject const Newspaper::staticMeta 环境: win10 QT5.15.2 MSVC2019 使用自己编译好的QWT库,打算重载 QwtPlotZoomer。 然而,始终有如下报错: Qt5:LNK2001: 无法解析的外部符号 "public: static struct QMetaObject const Newspaper::staticMeta QT error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall Widget::metaOb 阅读详情

开发环境:使用QScintilla_gpl-2.10和Qt5.5.0和MSVC2012编译器

 

自定义继承自QSciScintilla的类,出现使用VS的MSVC编译器编译失败的问题

解决方案:

将工程改为使用MinGW编译器编译,则不会出现上述问题

 

继承子QsciLexer的类,在调用时编译失败的问题

 

 

对于如下错误:

error LNK2001: 无法解析的外部符号 "public: static struct QMetaObject const QsciScintilla::staticMetaObject" (?staticMetaObject@QsciScintilla@@2UQMetaObject@@B)

解决方案如下:

在Qt的工程文件pro中添加:

DEFINES +=  QSCINTILLA_DLL

执行qmake,清理项目,重新构建,即可解决MSVC版本不能编译的问题

好的,大功告成,开始撸代码吧!!!

 

继承的类,用做第三方库提供给其他程序调用,需要添加QSCINTILLA_EXPORT

class QSCINTILLA_EXPORT QsciLexerDMIS : public QsciLexer
基于Qt与C++构建Python集成开发环境:从进程管理到IDE实现 集成开发环境(IDE)是现代软件开发的核心工具,它通过图形化界面整合代码编辑、编译、调试与执行等功能,极大提升了开发效率。其底层原理通常涉及进程管理、跨语言交互与实时数据流处理等关键技术。在工程实践中,利用C++的高性能与Qt的跨平台GUI能力,结合Python解释器,可以构建轻量级IDE,实现代码编辑与执行的闭环。QProcess作为Qt中管理外部进程的核心组件,能够安全地启动并监控Python解释器,处理标准输入输出流,同时通过信号槽机制实现非阻塞的实时交互。这种架构不仅适用于教学演示,也为开发自定义脚 阅读详情

相关推荐

Python爬虫实战:5分钟搞定东方财富网股票数据抓取(附完整代码)

本文详细介绍了如何利用Python爬虫技术,快速抓取东方财富网的实时股票数据。通过逆向分析其JSONP数据接口,构建了包含请求处理、数据清洗、分页调度及多格式存储的完整自动化采集系统,并提供了应对反爬策略与生产部署的进阶优化思路,附有可直接运行的完整代码。

weixin_29084231的博客 870

LNK2001: 无法解析的外部符号 “public: static struct QMetaObject const QsciScintilla::staticMetaObject”

今天在使用QsciScintilla的派生类进行信号槽绑定的时候,遇到了LNK2001:无法解析的外部符号问题,可是我的派生类里Q_OBJECT宏已经加上了,为什么还会报这个错误呢? error LNK2001: 无法解析的外部符号 "public: static struct QMetaObject const QsciScintilla::staticMetaObject" (?staticMetaObject@QsciScintilla@@2UQMetaObject@@B) ...

永远的魔术1号 3133

M2DGR数据集在一些SLAM框架上的配置与运行:ORB-SLAM系列、VINS-Mono、LOAM系列、FAST-LIO系列、hdl_graph_slam

为了说明以上这些SLAM框架的测试与数据集适配,以M2DGR数据集为例进行各自的配置与运行,方便我以后适配自己的数据集,运行的SLAM框架包括:ORB-SLAM2、ORB-SLAM3、VINS-Mono、A-LOAM、LeGO-LOAM、LIO-SAM、LVI-SAM、FAST-LIO2、FAST-LIVO、Faster-LIO、hdl_graph_slam。实验基于Ubuntu20.04,其中ORB、VINS-Mono、和LOAM系列的安装参考我以前的博客,有详细的安装方法,其他的框架在后面会简单介绍一下

zardforever123的博客 1万+

QT + VS2005 编译出现 error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall Wid...

在使用QT + VS2005编译程序时,有时出现如下错误:错误 1 error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall Widget::metaObject(void)const " (?metaObject@Widget@@UBEPBUQMetaObject@@XZ) 错误 2 error...

weixin_30852451的博客 1502

HSPICE用户必看:用Sigrity Broadband SPICE解决复杂封装建模的3个技巧

本文为HSPICE用户分享了三个使用Sigrity Broadband SPICE解决复杂封装建模难题的实战技巧。通过将宽频带S参数高效转换为时域SPICE模型,能显著提升仿真速度、保障收敛性,并精准分析谐振、返回路径不连续及超多端口PDN等关键问题,助力实现高效稳定的系统级信号与电源完整性分析。

metal的博客 598

【AI绘图进阶指南】Latent Diffusion Model核心组件解析——从理论到实践

本文深入解析Latent Diffusion Model(LDM)的核心组件,包括Autoencoder、Denoiser和Conditioning Encoder的工作原理及实践应用。通过理论结合代码示例,揭示LDM如何高效处理图像生成任务,并优化AI绘图流程,为开发者提供从理论到实践的进阶指南。

weixin_42628941的博客 383

QT开发:LNK2001 virtual struct QMetaObject const LNK2001 static struct QMetaObject const

因为通常的C++中,我们只调用头文件的情况下,不需要把头文件加入项目中,让项目能找到就行,但QT不是这样,必须加入项目中才能让qmake MOC一遍。MOC这个鬼东西的奇妙之处就是,qmake只对头文件进行处理,不会对CPP进行处理。4. 最后,该定义一定要加入到.h头文件中,并且该头文件一定要加入到项目中。然后用另一个类继承了这个ShareBase,实例化时发现根本无法链接,百思不得其解,最后发现,原来是忘记把头文件加入到项目中了。查看了源码,发现和以前一模一样,源码不可能有问题。

tanmx219的博客 985

华为AR3260路由器NAT回流配置实战:从WEB界面到命令行的完整避坑指南

本文详细解析了华为AR3260路由器NAT回流(Hairpin NAT)的配置原理与实战方法。针对内网用户无法通过公网地址访问内部服务器的常见问题,文章不仅剖析了WEB界面配置的常见报错原因,更提供了清晰、可靠且一劳永逸的命令行(CLI)配置方案与排错指南,帮助企业网络工程师彻底解决内外网访问不一致的难题。

u6v7w8x的博客 871

QT+VS2022 LNK2001: 无法解析的外部符号 “public: static struct QMetaObject const XXX::staticMetaObject@@B

VS2022 + QT5 出现 LNK2001 无法解析的外部符号 QMetaObject 的问题

m0_38036750的博客 6262

ubuntu18.04安装Nvidia显卡驱动后黑屏及网络、蓝牙驱动消失的解决方案

ubuntu18.04安装Nvidia显卡驱动后黑屏及网络、蓝牙驱动消失的解决方案

weixin_40735291的博客 6617

Vofa+使用笔记(1):用Vofa+通过串口连接显示波形

1. 介绍 Vofa+有三种协议设置 rawdata:你发什么就显示什么,跟普通的串口助手一样 firewater:最简单在VOFA+里绘制波形的协议,建议仅在通道数量不多、发送频率不高的时候使用。 justfloat:有一定的数据格式,此协议非常适合用在通道数量多、发送频率高的时候。 2. 使用步骤 设置号下面三个地方,使用的协议以及传输的方式 拉出控件 (最开始上位机没有识别到你的数据的时候,右边是没有数据显示的,如果你想要y轴显示什么数据,右边设置显示也可以,右键波形图然后Y轴设置也行) 把进

苏释州的博客 5万+

error LNK2001: 无法解析的外部符号 "public: static struct QMetaObject const

>Link: 1>  libMFCpt.lib(crypto_mfkj.obj) : 找到 MSIL .netmodule 或使用 /GL 编译的模块;正在使用 /LTCG 重新启动链接;将 /LTCG 添加到链接命令行以改进链接器性能 1>ImageCompressionEndView.obj : error LNK2001: 无法解析的外部符号 "public: static struct

chenyijun的专栏 1万+

sas协议(SAS PL-3)之Zoning功能

1 Zoning overview SAS zoning is implemented by a set of zoning expander devices with zoning enabled that define a zoned portion of a service delivery subsystem (ZPSDS)服务子系统. The zoning expander devices control whether a phy is permitted to participate in

sinat_37817094的博客 1530

error LNK2001: unresolved external symbol “public: static struct QMetaObject 报错

error LNK2001: unresolved external symbol "public: static struct QMetaObject 报错

v俊逸 3249

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

使用QWT产生error LNK2001的原因及解决方法

在使用QWT进行二维曲线绘制,使用方法如下: class Plot: public QwtPlot {    Q_OBJECT …… } 此时报错:error LNK2001: 无法解析的外部符号"public: static struct QMetaObject c

3833

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

关于QT 插件式开发的我遇到错误以及解决方案

首先列出错误: cva.obj:-1: error: LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl CVA::metaObject(void)const " (metaObject@CVA@@UEBAPEBUQMetaObject@@XZ) cva.obj:-1: error: LNK2001: 无法解析的外部符号 "public: virtual void * __cde CVA::qt_metacast(

用于记录学习的过程,不做商业用途。 1136

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

QT error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall Widget::metaObjec

因为QT槽的问题,导致构建过程中报错: 原因:只有继承了QObject类的类,才具有信号槽的能力。所以,为了使用信号槽,必须继承QObject。凡是QObject类(不管是直接子类还是间接子类),都应该在第一行代码写上Q_OBJECT。不管是不是使用信号槽,都应该添加这个宏。这个宏的展开将为我们的类提供信号槽机制、国际化机制以及 Qt 提供的不基于 C++ RTTI 的反射能力。因此,如果你

phenixyf的专栏 2万+

error LNK2001: 无法解析的外部符号 “public: virtual struct QMetaObject const * __thiscall Widget::metaObject

右键类的头文件->属性->常规/项类型->选择Qt Meta-Object Compiler。

天冷请你吃火锅 1593

QsciScintilla 遇到的坑

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34195142的博客 1518

linux代码段 java_linux学习之---在linux服务器上跑一段Java代码

经常在windows上进行开发,有时候,需要在Linux环境上跑一些程序测下代码,要怎么办才好嘞?假设你对Java常用命令和linux常用命令已经基本熟悉,就可以直接按照以下步骤来啦,默认linux已经配置好Java环境案例演示1.创建一个文件touch Hello.java2.vim命令编辑文件我这里给出一段代码哈:public class Hello {public static void m...

weixin_35934012的博客 296

【Qt工程】error: LNK2001: 无法解析的外部符号 “public: virtual struct QMetaObject const *【2023.05.12】

主要是对Qt不熟,Creator中构建项目是编译+链接,重新根据*.h和*.cpp文件进行生成工程是qmake。构建项目、重新构建项目都不会重新qmake工程。

qq_25231249的博客 2002

编译出现 error LNK2001: 无法解析的外部符号 “public: virtual struct QMetaObject const * __thiscall Widget::metaObj

出现这种情况的原因是,可能是以下几种: 1、.h中是否加上了Q_OBJECT宏? 2、你的类是否继承了QObject这个类 3、你的这个类确定在.h中进行了声明,然后在.cpp中进行了 4、注意这个信号和槽是后面加入的话,注意你的moc文件是否生成了 基本上就是以上几个原因造成的 ...

Littlehero_121的博客 3743

error LNK2001: 无法解析的外部符号 “public:xxxxxx“

qt常见错误之error LNK2001

J_admin的博客 1254

Qt 编译错误 LINK2001:无法解析的外部符号 public: virtual struct QMetaObject const thiscall Widget::metaObject

对于Qt来说,signal和slots是Qt的核心,而对于信号来说,只有继承了QObject的类,并且在类中添加Q_OBJECT宏,信号才能有效地和槽建立连接。可是在Qt开发的前期,可能预测不到需要在类中添加信号(也就是说没有添加Q_OBJECT宏),但是在后期开发加上Q_OBJECT宏和对应的信号时,重新执行qmake和build流程后,却会出现错误,错误代号是LINK2001:无法解析的外部符号 "public: virtual struct QMetaObject const * __this...

xx18030637774的博客 3365

QT:无法解析的外部符号 “public: static struct QMetaObject const test::staticMeta

摘要 QT编译报错"无法解析的外部符号"通常是由于继承QObject的类未添加Q_OBJECT宏或moc文件未正确生成。解决方法:1)确保所有QObject子类(包括间接子类)都添加Q_OBJECT宏;2)将相关头文件包含到项目中以保证moc文件能正确生成。该问题与QT元对象系统的编译机制有关,正确处理可避免链接错误。(98字)

路在脚下,Quick run! 643
上一篇: 如何将Visual Studio的工程转成QT的工程
下一篇: Qt中的上下文菜单 ContexMenu
一杯橙咖
博客等级 码龄14年 81粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值