C ++ / Qt:只是一个LNK2019,我不知道为什么

时间:2013-09-22 13:32:53

标签: c++ qt lnk2019

我的项目中有一个不受欢迎的LNK2019错误。也许有人可以帮助我吗?

这是我的头文件:

#ifndef ELIST_H
#define ELIST_H

#include <QTableWidget>

class EList : public QTableWidget{
    Q_OBJECT
public:
    explicit EList(QWidget *parent = 0){}
    ~EList(){}
};

#endif // ELIST_H

那是另一个cpp文件,我想在方法do()中创建一个EList对象:

#include "elist.h"
#include "a.h"

void A::do(){
    EList* el = new EList;
}

但后来我收到此LNK2019错误消息: a.obj:-1:错误:LNK2019:“”public:__ cdecl EList :: EList(类QWidget *)“(?? 0EList @@ QEAA @ PEAVQWidget @@@ Z)”in function“”public:__ cdecl A: :A(班级QWidget *)“(?? 0A @@ QEAA @ PEAVQWidget @@@ Z)”。

我错了什么或我该做什么?我已插入我能想象的所有文件/类但它没有显示任何效果。


编辑:在这里你可以看到我的亲文件:

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = A
TEMPLATE = app


SOURCES += main.cpp\
        a.cpp \
    elist.cpp

HEADERS  += a.h \
    elist.h

FORMS    += a.ui

RESOURCES += \
    ListViewIcon.qrc

如果我将Compiler(Qt 5.1 MSVC 2012)更改为Microsoft(Microsoft Visual C ++编译器11.0),则所有文件都将编译...

1 个答案:

答案 0 :(得分:0)

使用C ++代码,您通常无法混合匹配编译器。无论用什么C ++编译器构建Qt,您都应该使用它来构建应用程序。你基本上回答了自己的问题:)