QT多线程编程时一个小错误

现在渐渐回头复习一下QT的基本编程,今天在多线程编程里遇到一个问题,来自http://shouce.jb51.net/qt-beginning/45.html网站的一个例子出现了undefined reference错误

undefined reference to `vtable for Thread'
D:\qt-file\core\chat\mythread.cpp:13: error: undefined reference to `mythread::stringChanged(QString const&)'

错误翻译过来就是:没有定义mythread::stringChanged(QString const&)这个东东

对比一下头文件的发现 stringChanged函数里的参数是以const开头的,只是参数不同的问题,所以定义变量时加个 const 就好了

修改后的图

总结:在函数调用中不同参数调用的函数一般是不一样,而以const在开头或const在中间的实参是完全不一样的,所以可能会报错。

后续:第二天,昨晚忘记关电脑是保存qt的文件了,无论如何修改都会出现这个问题,感觉是bug来的,然后我去网上找了一下教程,发现在工程的.pro文件中加上INSTALLS += target 。然后重新构建一下就解决了问题。后来在删掉
INSTALLS += target 也没有出现问题,玄学问题。

发表评论

电子邮件地址不会被公开。 必填项已用*标注