我正在使用 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"));
}
原文由 TheFuzz 发布,翻译遵循 CC BY-SA 4.0 许可协议
警告:如果您已经有 .pro 文件,请不要这样做 - 您会丢失它!
为了自动确保生成所有的moc cpp文件,你可以让qmake自动为你生成一个.pro文件,而不是自己写一个。
跑
在项目目录中,qmake 将扫描您的目录中的所有 C++ 头文件和源文件以生成 moc cpp 文件。