我在X86-qtopia 下编译./build 程序出现如下报错:
[root@tom Multi_thread_fbli]# ./build
rm -f .obj/release-shared/moc_sinthread.o .obj/release-shared/moc_trithread.o .obj/release-shared/moc_mainwindow.o .obj/release-shared/moc_button_fbli_base.o
rm -f .moc/release-shared/moc_sinthread.cpp .moc/release-shared/moc_trithread.cpp .moc/release-shared/moc_mainwindow.cpp .moc/release-shared/moc_button_fbli_base.cpp
rm -f .ui/release-shared/button_fbli_base.cpp .ui/release-shared/button_fbli_base.h
rm -f .obj/release-shared/sinthread.o .obj/release-shared/trithread.o .obj/release-shared/mainwindow.o .obj/release-shared/main.o .obj/release-shared/button_fbli_base.o
rm -f *~ core *.core
/opt/FriendlyARM/mini2440/x86-qtopia/qtopia-2.2.0-FriendlyARM/qt2/bin/uic button_fbli_base.ui -o .ui/release-shared/button_fbli_base.h
g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -Os -DQTOPIA_DATA_LINKING -DQCONFIG=\"qconfig-qpe.h\" -DQTOPIA_TARGET=\"multi_thread_fbli\" -DQTOPIA_TRTARGET=\"multi_thread_fbli\" -DQT_NO_DEBUG -I/opt/FriendlyARM/mini2440/x86-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/mkspecs/qws/linux-generic-g++ -I. -I../qtopia-2.2.0-FriendlyARM/qtopia/include -I../qtopia-2.2.0-FriendlyARM/qt2/include -I.ui/release-shared/ -I.moc/release-shared/ -o .obj/release-shared/sinthread.o sinthread.cpp
In file included from sinthread.cpp:2:
sinthread.h:16: error: expected class-name before ‘{’ token
make: *** [.obj/release-shared/sinthread.o] Error 1
出错的文件sinthread.h如下:
1 #ifndef SINTHREAD_H
2 #define SINTHREAD_H
3
4 #include <qdialog.h>
5 #include <qwidget.h>
6 #include <qcolor.h>
7 #include <qpainter.h>
8 #include <qtimer.h>
9 #include <qframe.h>
10 #include <qapplication.h>
11 #include <qthread.h>
12 #include <math.h>
13
14 class SinThread : public QWidget,public QThread
15 //class SinThread : public QWidget
16 {
17 Q_OBJECT
18 public:
19 SinThread(QWidget *parent =0,const char *name =0,
20 QFrame *f =NULL);
21 void run();
22 void stop();
23 protected:
24 virtual void paintEvent(QPaintEvent*);
25 private slots:
26 void flushBuff();
27 private:
28 int buffer[200];
29 QTimer *timer;
30 QFrame *frame;
31 };
32 #endif
报错在第16行,如果我注释掉第14行,打开第15行,再编译就成功了,我试了下 用g++单独编译一个多重继承程序是可以的。难道在Qtopia下不支持多重继承吗?我用的是Qtopia2.2.0.
请大侠们指点迷津啊。