简单的应用程序获取"未定义的引用vtable"错误? [Qt的]

时间:2016-02-14 01:17:04

标签: c++ qt

我正在尝试在this page编译时找到代码。我想做的就是复制该页面所描述的内容。我不断收到错误消息:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head><title>daily backup script: </title></head>
    <body style="font-family:monospace; font-size: 10px">
        <table border="1">
        </table>
    </body>
</html>
user@hostname:/path/to/script$             <tr style='color: red'><td>2016-02-13</td><td>20:11:29</td><td colSPan='5'>test again</td></tr>
            <tr><td>2016-02-13</td><td>20:11:29</td><td colSPan='5'>test</td></tr>
            <tr><td>2016-02-13</td><td>20:11:29</td><td colSPan='5'>Sat Feb 13 20:11:29 EST 2016</td></tr>

这是我的代码,与该页面上的代码非常相似:

的main.cpp

main.cpp:13: error: undefined reference to `vtable for myMainWindow'

我读到了为什么会发生这种情况,并且发现它需要在头文件中定义类。考虑到这段代码,我将如何正确地做到这一点?

2 个答案:

答案 0 :(得分:2)

除了缺少析构函数定义之外,您还缺少Q_OBJECT宏,这对于所有QObject派生类都是必需的。如果你有这个,你会得到关于MOC生成文件的另一个错误,当你在QObject中定义main.cpp派生类时,你需要手动包含MOC文件。如果您为QObject派生类使用专用的h和cpp文件,则情况并非如此。

答案 1 :(得分:1)

如评论中所述:~myMainWindow()缺少的函数体是问题所在。