[英]Qt with codeblocks - undefined reference to vtable
我已经在qt中创建了项目(GUI和逻辑框架),然后在代码块中创建了QT项目,以便在此IDE中进行编码。
不幸的是,我在样式上遇到错误:Calc_Button等对vtable的未定义引用。
这段代码可以使用Qt很好地编译,但是它不想使用代码块进行编译。 使用相同的编译器。
我可以提供代码,但实际上很多-甚至只是存根。
这就是Calc_Button类的样子:
#ifndef CALC_BUTTON_H
#define CALC_BUTTON_H
#include <QPushButton>
class Calc_Button : public QPushButton
{
Q_OBJECT
private:
protected:
public:
explicit Calc_Button(QWidget *parent = 0);
signals:
void clicked(QString);
public slots:
void click()
{
emit clicked(QString(this->text()));
}
};
#endif // CALC_BUTTON_H
这是cpp:
#include "calc_button.h"
Calc_Button::Calc_Button(QWidget *parent) : QPushButton(parent)
{
}
该错误消息通常会引起误解,但实际上(通常)是您没有定义虚拟函数之一的原因。
这是一个示例演示 :
class MyClass
{
public:
virtual void doSomething() { }
virtual void doSomethingMore();
};
int main()
{
MyClass obj;
obj.doSomething();
obj.doSomethingMore();
return 0;
}
编译信息:
/home/4VqWl0/ccMjLi2V.o:在函数
main':
prog.cpp:(.text+0x19): undefined reference tomain':
prog.cpp:(.text+0x19): undefined reference tomain':
的vtable为MyClass的
prog.cpp:(.text+0x19): undefined reference to.
prog.cpp:(.text+0x1e): undefined reference to.
prog.cpp:(.text+0x1e): undefined reference to.
MyClass :: doSomethingMore()的
prog.cpp:(.text+0x1e): undefined reference to.
prog.cpp:(.text+0x1e): undefined reference to
collect2:ld返回1退出状态
读得好:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.