c++ - 对 vtable 的 undefined reference 。试图编译一个 Qt 项目

标签 c++ qt qmake

我正在使用 Code::Blocks 8.02 和 mingw 5.1.6 编译器。编译 Qt 项目时出现此错误:

C:\Documents and Settings\The Fuzz\Desktop\GUI\App_interface.cpp|33|undefined reference to `vtable for AddressBook'

文件地址簿.h:

 #ifndef ADDRESSBOOK_H
 #define ADDRESSBOOK_H

 #include <QWidget>

 class QLabel;
 class QLineEdit;
 class QTextEdit;

 class AddressBook : public QWidget
 {
     Q_OBJECT

 public:
     AddressBook(QWidget *parent = 0);

 private:
     QLineEdit *nameLine;
     QTextEdit *addressText;
 };

 #endif

文件地址簿.cpp:

#include <QtGui>
#include "addressbook.h"

AddressBook::AddressBook(QWidget *parent)
     : QWidget(parent)
{
    QLabel *nameLabel = new QLabel(tr("Name:"));
    nameLine = new QLineEdit;

    QLabel *addressLabel = new QLabel(tr("Address:"));
    addressText = new QTextEdit;

    QGridLayout *mainLayout = new QGridLayout;
    mainLayout->addWidget(nameLabel, 0, 0);
    mainLayout->addWidget(nameLine, 0, 1);
    mainLayout->addWidget(addressLabel, 1, 0, Qt::AlignTop);
    mainLayout->addWidget(addressText, 1, 1);

    setLayout(mainLayout);
    setWindowTitle(tr("Simple Address Book"));
}

最佳答案

使用 Qt Creator 时:

  1. 构建 → 运行 qmake
  2. 构建 → 全部重建

关于c++ - 对 vtable 的 undefined reference 。试图编译一个 Qt 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1552069/

相关文章:

qmake - 如果 DEFINES 更改,如何使 qmake 进行干净的重建

c++ - AVX,单精度复数的水平和?

c++ - visual studio下fortran和c++/c混合编程

C++ mpz_class 和二进制文件

qt - QWizardPage:如何重新禁用 "Next"按钮

c++ - qt-creator 缺少 mac 上的 qmake

c++ - 如何从字符数组中提取数字字符串成员

c++ - 如何将不可编译的配置文件添加到QT Project中?

c++ - 如何通过信号和槽发送数据?

c++ - Asio C++ 库 : asio/detail/config. hpp:没有这样的文件或目录