qt编程时,遇到undefined reference to `vtable for xxx'怎么办

哎哎6年前C++1424

今天编译某个arm程序时,添加了个

Q_OBJECT 的宏

然后编译报错


arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/QtEmbedded-4.7.0-arm/mkspecs/linux-g++ -I. -I/usr/local/Trolltech/QtEmbedded-4.7.0-arm/include/QtCore -I/usr/local/Trolltech/QtEmbedded-4.7.0-arm/include/QtNetwork -I/usr/local/Trolltech/QtEmbedded-4.7.0-arm/include -I. -o contrlrtu.o contrlrtu.cpp
arm-none-linux-gnueabi-g++ -Wl,-O1 -Wl,-rpath,/usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib -o arm_Udp_Bind_Serial_Send main.o udpbind_con.o rcvmsgprint.o contrlrtu.o moc_udpbind_con.o moc_rcvmsgprint.o    -L/usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib -lQtNetwork -L/home/develop/yizhi/GUI/tslib/installdir/lib -L/usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib -lQtCore -lpthread 
contrlrtu.o: In function `ContrlRtu::ContrlRtu(QObject*)':
contrlrtu.cpp:(.text+0x1c): undefined reference to `vtable for ContrlRtu'
contrlrtu.o: In function `ContrlRtu::~ContrlRtu()':
contrlrtu.cpp:(.text+0x6c): undefined reference to `vtable for ContrlRtu'
collect2: ld returned 1 exit status
make: *** [arm_Udp_Bind_Serial_Send] 错误 1


解决方法:


make clean

qmake

make

即可,因为新加的Q_OBJECT宏没有被moc,所以会导致,编译出错。

相关文章

【QT】qt下使用内置库进行IP地址获取,网卡信息读取

【QT】qt下使用内置库进行IP地址获取,网卡信息读取

近期由于需要使用这些项目,所以自然而然的将找到的代码贡献出来咯!下面是代码, 记得在 PRO文件内假如 QT += network#include <QtDebug>...

QT 的冒泡排序

qt中冒泡排序的做法,突然想到的内容。闲来无事便上传。  QList<QString> OExpression::getSortedList(QList<QString&g...

QT QTimer 的单次延迟触发静态函数演示

QT QTimer 的单次延迟触发静态函数演示

 #include <QApplication>  #include <QTimer>  int main(in...

QT 中修改程序form图标,mainwindow图标

  1、通过qtcreator新建一个文件filename.qrc,将图片添加到filename.qrc文件中:选择Add Prefix得到/new/prefix1,简单点改为/,再选Add File...

QSqlTableModel,使用简单教程。

Qt  QSqlTableModel  使用心得连接数据库执行sql查询,条件显示,排序获取记录数,列数以及记录内容,字段内容新增,修改,删除,恢复其它 &nb...

 svn的语言包显示中文,svn安装中文语言包

svn的语言包显示中文,svn安装中文语言包

1、下载svn:http://tortoisesvn.net/downloads.html2、下载中文包:3、安装svn和中文语言包4、右击任意文件夹找到svn点击右键第二个选项里面的设置...