自定义控件问题:error: undefined reference to `XXX::XXXX‘

2 篇文章 0 订阅

在这里插入图片描述
这个问题在linux下没有但在wind下出现,
为了让控件类可通过dll导出给其它工程使用,即HexEditor类可供外部调用,这里要将HexEditor类添加导入导出标识,打开控件类的头文件HexEditor.h,先添加:
#include <QtUiPlugin/QDesignerExportWidget>
再为控件类HexEditor添加宏QDESIGNER_WIDGET_EXPORT,如下图:
说明:宏QDESIGNER_WIDGET_EXPORT,最终就是在类前添加了dllexport 或dllexport,以用于导入和导出该类。
在这里插入图片描述

动态库的添加方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
总结
1控件的版本一定要与编译Qt Creator的版本一致,不然编译的控件不会被Qt Creator识别,

2.一定要放Release版本的dll到Qt Creator的插件目录下,Debug版本的dll在Qt Creator的控件列表栏中也无法显示。

3.使用自定义控件时,当添加自定义控件的库时,一定要针对Debug版Release版本分别添加对应的库,不然在Debug中使用Release版的lib,dll时,编译时不会出错,但在运行时,会出现“QWidget: Must construct a QApplication before a QWidget” 的提示,并且程序无法成功运行。

4、自定义控件要生成Release的版本和Debug的版本,动态库放在lib文件夹下,源文件的lib文件夹中放.a文件,
5构成文件夹中直接放在.exe根文件下,编译时出错就应该在上一层目录放置。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值