gpt4 book ai didi

c++ - 带有代码块的 Qt - 对 vtable 的 undefined reference

转载 作者:行者123 更新时间:2023-11-28 08:14:50 25 4
gpt4 key购买 nike

我在 qt 中创建了项目(GUI 和逻辑框架),然后我在代码块中创建了 QT 项目,以便在此 IDE 中进行编码部分。
不幸的是,我遇到了样式错误:对 Calc_Button 等的虚表的 undefined reference 。
这段代码用 Qt 编译得很好,但它不想用代码块编译。使用相同的编译器。
我可以提供代码,但它真的很多 - 甚至只是 stub 。
这就是 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)
{

}

最佳答案

此错误消息通常具有误导性,但实际原因(通常)是您没有定义虚函数之一。

这是一个 sample demo :

class MyClass
{
public:
virtual void doSomething() { }
virtual void doSomethingMore();
};

int main()
{
MyClass obj;
obj.doSomething();
obj.doSomethingMore();
return 0;
}

编译信息:

/home/4VqWl0/ccMjLi2V.o: In function main':<br/>
prog.cpp:(.text+0x19): undefined reference to
vtable for MyClass.<br/>
prog.cpp:(.text+0x1e): undefined reference to
MyClass::doSomethingMore()'
collect2: ld returned 1 exit status

好读:

What does it mean that the "virtual table" is an unresolved external?

关于c++ - 带有代码块的 Qt - 对 vtable 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8013419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com