definition of static data member '*::staticMetaObjectExtraData' of dllimport

vip2006_007 2012-04-27 12:22:37
用Qt编写了一个dll;写了几个类,这些类都继承自QObject并使用了Q_OBJECT宏,大概跟下面的类一样:
class Q_DECL_EXPORT A:public QObject
{
Q_OBJECT
public:
A();
}
编译后生成libx.a跟x.dll
然后在另一个项目里使用这个x.dll(隐式调用)
编写了一个新类继承自A
class B:public A
{
Q_OBJECT
public:
B();
}
编译出现了这样的错误 error: definition of static data member 'A::staticMetaObjectExtraData' of dllimport'd class
蛋痛的是,使用mingw 4.7.4不存在这样的错误,报的是“multiple definition of ‘**metacall(*)’”,不过据称这是编译器错误,不是程序错误,换成mingw4.8.1就出现了上面definition of static data member 'A::staticMetaObjectExtraData' of dllimport'd class的错误。。。。。这究竟是怎么搞的啊??????
都被弄晕了。。。。
...全文
1319 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
vip2006_007 2013-05-08
  • 打赏
  • 举报
回复
引用 2 楼 noodle123 的回复:
突然发现你的问题是 2012-04-27提的,到现在已经过去快一年了,呵,呵呵。
我都忘了有这贴了
noodle123 2013-01-10
  • 打赏
  • 举报
回复
突然发现你的问题是 2012-04-27提的,到现在已经过去快一年了,呵,呵呵。
noodle123 2013-01-10
  • 打赏
  • 举报
回复 1
确实是编译器的问题: 隐式调用的时候我们一般在工程树中将需要的动态库头文件添加到工程中: HEADERS += mainwindow.h \ ScopeWidget.h 这样导致ScopeWidget.h的全局引用,由于从QWidget继承,所以编译的时候会生成moc_ScopeWidget.cpp文件,导致如上错误。 解决办法是将ScopeWidget.h从工程树中移除,只在用到的地方引用。比如: 工程中需要变为: HEADERS += mainwindow.h 然后在ui_mainwindow.h中使用 #include "../ScopeWidget/ScopeWidget.h" 这样就可以了。 ScopeWidget *scopeWidget; scopeWidget = new ScopeWidget(groupBox_4); scopeWidget->setObjectName(QString::fromUtf8("scopeWidget")); 以上答案得益于如下链接: http://www.qtforum.org/article/26708/shared-library-compilation-error.html?s=648c17887f3ae72775fc9386fc3c403e37ca7334#post92829
内容概要:本文系统研究了在电力系统负荷发生突变的动态环境下,采用无迹卡尔曼滤波(UKF)与自适应无迹卡尔曼滤波(AUKF)进行三相状态估计的方法。通过Matlab平台实现了两种滤波算法的仿真模型,构建了包含三相电力系统建模、非线性状态方程推导、量测系统设计在内的完整状态估计框架。重点对比分析了UKF与AUKF在突变负荷扰动下的估计精度、收敛速度与鲁棒性,深入探讨AUKF通过实时调整噪声协方差实现自适应的能力,从而有效应对系统模型不确定性和外部动态变化,提升状态估计的可靠性。研究为智能电网在复杂动态工况下的实时监控、安全评估与优化控制提供了坚实的算法基础与仿真验证手段。; 适合人群:具备电力系统分析、现代控制理论基础及一定Matlab编程能力的研究生、科研人员和工程技术人员。; 使用场景及目标:① 掌握UKF在非线性电力系统状态估计中的具体应用流程与实现细节;② 深入理解AUKF的自适应机制及其在负荷突变、模型失配等动态工况下提升估计性能的原理与优势;③ 为智能电网的状态监测、故障诊断、实时调度与主动防御等高级应用提供可靠的算法支持与可复现的仿真平台。; 阅读建议:建议读者结合电力系统状态估计的经典理论,仔细研读并运行所提供的Matlab代码,重点关注系统模型的建立、UKF/AUKF算法的参数初始化、负荷突变事件的建模方式,以及两种算法在电压、电流等状态变量估计误差上的对比分析,通过仿真结果的可视化深入理解算法差异与工程应用价值。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧