按照论坛上安装方法装了qt-win-opensource-4.0.1-mingw.exe,devcpp-4.9.9.2_setup.exe两个程序,在编译下面程序时总是错误:
代码:
#include <QApplication>
#include <QLCDNumber>
#include <QPushButton>
#include <QSlider>
#include <QVBoxLayout>
#include <QWidget>
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = 0);
public slots:
void MyExitSolt(int value);
};
MyWidget::MyWidget(QWidget *parent):QWidget( parent)
{
QPushButton *btquit = new QPushButton("quit");//生成退出按钮
QLCDNumber *lcd = new QLCDNumber(2); //lcd显示
QSlider *slider = new QSlider(Qt::Horizontal); //滑动条
slider->setRange(0,919);
slider->setValue(0);
connect(slider,SIGNAL(valueChanged(int)),this,SLOT(MyExitSolt(int)));
QVBoxLayout *layout = new QVBoxLayout();
layout->addWidget(btquit);
layout->addWidget(lcd);
layout->addWidget(slider);
setLayout(layout);
}
void MyWidget::MyExitSolt(int value)
{
int a=0;
}
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
MyWidget widget;
widget.show();
return app.exec();
}
在命令行下输入:qmake -project
qmake
mingw32-make
程序输出:
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `F:/Qt/test/badprogram'
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-s -Wl,-subsystem,windows -o "release\badprogram.exe" release\main.o -L"F:\Qt\4.0.0\lib" -lmingw32 -lqtmain -lQtCore4 -lQtGui4
mingw32-make[1]: Leaving directory `F:/Qt/test/badprogram'
release\main.o(.text+0x79):main.cpp: undefined reference to `vtable for MyWidget'
release\main.o(.text+0x80):main.cpp: undefined reference to `vtable for MyWidget'
release\main.o(.text+0x509):main.cpp: undefined reference to `vtable for MyWidget'
release\main.o(.text+0x510):main.cpp: undefined reference to `vtable for MyWidget'
release\main.o(.text+0x9d4):main.cpp: undefined reference to `vtable for MyWidget'
release\main.o(.text+0x9db):main.cpp: more undefined references to `vtable for MyWidget' follow
collect2: ld returned 1 exit status
mingw32-make[1]: *** [release\badprogram.exe] Error 1
mingw32-make: *** [release] Error 2
程序是加入了自定义slots后编译就总是出错。我找了QT自带的有关自定义slots的例子,重新编译都正常。请问这个程序问题出在哪里?有什么需改的?请各位多多指教,谢!