LNK2019

错误如下:

错误 3 error LNK2019: 无法解析的外部符号 "public: static struct QMetaObject const SimDataReceive::staticMetaObject" (?staticMetaObject@SimDataReceive@@2UQMetaObject@@B),该符号在函数 "public: static class QMetaObject::Connection __cdecl QObject::connect<void (__thiscall SimDataReceive::*)(char const *,void const ,unsigned int),void (__thiscall EarthViewManager::)(char const *,void const *,unsigned int)>(class SimDataReceive const ,void (__thiscall SimDataReceive::)(char const *,void const *,unsigned int),class EarthViewManager const ,void (__thiscall EarthViewManager::)(char const *,void const *,unsigned int),enum Qt::ConnectionType)" (??$connect@P8SimDataReceive@@AEXPBDPBXI@ZP8EarthViewManager@@AEX01I@Z@QObject@@SA?AVConnection@QMetaObject@@PBVSimDataReceive@@P83@AEXPBDPBXI@ZPBVEarthViewManager@@P84@AEX12I@ZW4ConnectionType@Qt@@@Z) 中被引用 D:\workplace\sstftyrunner_0419\src\SSTFTY\GtEarthMgrPlugin\earth_view_manager.obj GtEarthMgrPlugin

备注:

没有生成moc文件,只要继承了Qobject类,添加了Q_OBJECT宏之后,就应当会生成一个moc_XXX.cpp的文件,该文件实现了QObject的一些基础类,如果没有该文件,就会报上述错误;

解决方案:将对应的.h.cpp文件移除后重新添加到工程中,将自动生成moc文件,如果这个类有对应的.ui文件可以直接对该.ui文件进行编译,同样可以生成moc文件;

如果移除之后重新添加,还是不可以,干脆直接重建整个工程吧。换言之,项目构建之初,能编译通过的时候,一定要做好备份。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 使用SuperMap iObjects C++报错: >MFCApplication1View.obj : err...
    为梦齐舞阅读 1,005评论 0 0
  • 写在前面 在界面搭建时,我们需要很多触发事件。比如,鼠标右击,我们希望弹出对话框;点击退出的按钮,界面就会关闭或者...
    锅盖666阅读 614评论 0 0
  • 为什么在头文件中有的是使用前置声明,而有的是包含头文件? 如下代码: 前置声明(forward declarati...
    Joe_HUST阅读 1,324评论 0 6
  • 1 实验目的 目前计算机视觉技术已经比较成熟,相关的开源项目与算法很多,可以将这些开源算法进行整合,进而做成一个小...
    YOUNG_FAN阅读 6,833评论 0 50
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,144评论 1 32