我可能遗漏了一些明显的东西,但是我无法摆脱Qt用户界面中的链接错误。

我已经隔离了引起麻烦的部分。基本上,我实现了QGraphicsView的子类来显示交互式开销图。由于某种原因,我无法解决构造函数。

OverheadMap.h:

#ifndef OVERHEADMAP_H
#define OVERHEADMAP_H

#include <QGraphicsView>

class OverheadMap : public QGraphicsView {
    Q_OBJECT

public:
    OverheadMap();
};

#endif // OVERHEADMAP_H


OverheadMap.cpp:

#include "OverheadMap.h"

OverheadMap::OverheadMap() {
    // Body
}


main.cpp:

#include "OverheadMap.h"

int main(int argc, char *argv[])
{
    OverheadMap *map = new OverheadMap();
}


LNK2019:

main.obj:-1: error: LNK2019: unresolved external symbol "public: __thiscall OverheadMap::OverheadMap(void)" (??0OverheadMap@@QAE@XZ) referenced in function _main


我可以毫不费力地将QtCreator的自动补全与OverheadMap一起使用,并且我已经完成了类似的QFrame子类实现,并且可以正常工作,所以我怀疑这里是否存在语法错误。

我想念什么?

谢谢。

最佳答案

这段代码对我来说很好。

因此,解决方案是您必须重新运行qmake,因为根据您的评论,您修改了项目结构而不告知qmake。

09-06 13:56