使用qmake-》make编译窗体时出现下面信息:
release\mainframe.o:mainframe.cpp:(.text$_ZN12Ui_mainframe7setupUiEP7QWidget[Ui_mainframe::setupUi(QWidget*)]+0x14e): undefined reference to `mWidget::mWidget(QWidget*, bool)'
release\mainframe.o:mainframe.cpp:(.text$_ZN12Ui_mainframe7setupUiEP7QWidget[Ui_mainframe::setupUi(QWidget*)]+0x234): undefined reference to `DialPlate::DialPlate(QWidget*, bool)'
release\mainframe.o:mainframe.cpp:(.text$_ZN12Ui_mainframe7setupUiEP7QWidget[Ui_mainframe::setupUi(QWidget*)]+0x31d): undefined reference to `mWidget::mWidget(QWidget*, bool)'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [release\widget.exe] Error 1
mingw32-make: *** [release] Error 2
情况:
1、窗体用QT-Designer编辑,窗体中插入了一个自定义的widget插件(此widget之前已经编译成dll拷贝在qt的plugins\disigner下,自定义widget在designer中的显示拖放signal-slot连接都正常)
2、此窗体的工程文件widget.pro内容:
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
FORMS += ui/mainframe.ui
HEADERS += src/mainframe.h
SOURCES += src/mainframe.cpp src/main.cpp
RESOURCES +=
3、mainframe.h内容:
#ifndef MAINFRAME_H
#define MAINFRAME_H
#include "ui_mainframe.h"
class Mainframe : public QWidget, public Ui::mainframe
{
Q_OBJECT
public:
Mainframe( QWidget * parent = 0, Qt::WindowFlags f = 0 );
private slots:
};
#endif
4、mainframe.cpp内容:
#include "mainframe.h"
Mainframe::Mainframe( QWidget * parent, Qt::WindowFlags f)
: QWidget(parent, f)
{
setupUi(this);
}
5、main.cpp内容:
#include <QApplication>
#include "mainframe.h"
//
int main(int argc, char ** argv)
{
QApplication app( argc, argv );
Mainframe win;
win.show();
app.connect( &app, SIGNAL( lastWindowClosed() ), &app, SLOT( quit() ) );
return app.exec();
}
6、mainframe.ui由designer生成的,文件太长,省略……
请各位指点一二