簡體   English   中英

帶代碼塊的Qt-對vtable的未定義引用

[英]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 to
main':
prog.cpp:(.text+0x19): undefined reference to
main':
prog.cpp:(.text+0x19): undefined reference to
的vtable為MyClass的.
prog.cpp:(.text+0x1e): 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

collect2:ld返回1退出狀態

讀得好:

“虛擬表”是未解決的外部意味着什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM