当前位置: 技术问答>linux和unix
QT高手进来看一看,瞧一瞧.
来源: 互联网 发布时间:2015-08-23
本文导语: MyWidget 是我定义的一个类,开始的时候我没有在类中添加槽,添加后编译就是这样的错误,给我说说好吗? g++ -c -pipe -Wall -W -O2 -march=i386 -mcpu=i686 -g -DGLX_GLXEXT_LEGACY -fno-use-cxa-atexit -fno-exceptions -DQT_NO_DEBUG -I/usr/lib/...
MyWidget 是我定义的一个类,开始的时候我没有在类中添加槽,添加后编译就是这样的错误,给我说说好吗?
g++ -c -pipe -Wall -W -O2 -march=i386 -mcpu=i686 -g -DGLX_GLXEXT_LEGACY -fno-use-cxa-atexit -fno-exceptions
-DQT_NO_DEBUG -I/usr/lib/qt-3.1/mkspecs/default -I. -I. -I/usr/lib/qt-3.1/include -o mymain.o mymain.cppg++ -o mylabel
mylabel.o mymain.o moc_mylabel.o -L/usr/lib/qt-3.1/lib -L/usr/X11R6/lib -lqt-mt -lXext -lX11 -lmmymain.o(.text+0x32):
In function `MyWidget::MyWidget[not-in-charge](QWidget*, char const*)':/workdir/mylabel/mymain.cpp:31: undefined
reference to `vtable for MyWidget'mymain.o(.text+0x39):/workdir/mylabel/mymain.cpp:31: undefined reference to `vtable
for MyWidget'mymain.o(.text+0x512): In function `MyWidget::MyWidget[in-charge](QWidget*, char const*)':
/workdir/mylabel/mymain.cpp:31: undefined reference to `vtable for MyWidget'
mymain.o(.text+0x519):/workdir/mylabel/mymain.cpp:31: undefined reference to `vtable for MyWidget'
collect2: ld returned 1 exit status
make: *** [mylabel] Error 1
定义信息和槽时,很多时候都出现这种错误.
我就是想知道一般什么原因会出现这种错误.
g++ -c -pipe -Wall -W -O2 -march=i386 -mcpu=i686 -g -DGLX_GLXEXT_LEGACY -fno-use-cxa-atexit -fno-exceptions
-DQT_NO_DEBUG -I/usr/lib/qt-3.1/mkspecs/default -I. -I. -I/usr/lib/qt-3.1/include -o mymain.o mymain.cppg++ -o mylabel
mylabel.o mymain.o moc_mylabel.o -L/usr/lib/qt-3.1/lib -L/usr/X11R6/lib -lqt-mt -lXext -lX11 -lmmymain.o(.text+0x32):
In function `MyWidget::MyWidget[not-in-charge](QWidget*, char const*)':/workdir/mylabel/mymain.cpp:31: undefined
reference to `vtable for MyWidget'mymain.o(.text+0x39):/workdir/mylabel/mymain.cpp:31: undefined reference to `vtable
for MyWidget'mymain.o(.text+0x512): In function `MyWidget::MyWidget[in-charge](QWidget*, char const*)':
/workdir/mylabel/mymain.cpp:31: undefined reference to `vtable for MyWidget'
mymain.o(.text+0x519):/workdir/mylabel/mymain.cpp:31: undefined reference to `vtable for MyWidget'
collect2: ld returned 1 exit status
make: *** [mylabel] Error 1
定义信息和槽时,很多时候都出现这种错误.
我就是想知道一般什么原因会出现这种错误.
|
把类MyWidget的源文件,头文件贴出来
|
错误提示其实没错,但是导致错误的真正原因编译器无法知道。
这可能是QT的moc的一个bug
这可能是QT的moc的一个bug