未定义的虚拟thunk引用

时间:2013-03-21 15:55:18

标签: c++ hyperlink qt-creator thunk

我说错误

undefined reference to 'virtual thunk to myClass::myFunction'

对于我正在尝试创建的库。

这是我的代码:

myClass.cpp :
    #include "myClass.h"
    void myClass::myFunction() {}
    myClass::~myClass() {}

myClass.h :
    {inclusion guards}

    #include "myClass_global.h"

    class MY_CLASSSHARED_EXPORT myClass {
        public:
            myClass();
            virtual void myFunction();
            virtual ~myClass();
    };

myClass_global.h
    {inclusion guards}

    #include <QtCore/qglobal.h>

    # if degined(MY_CLASS_LIBRARY)
    #    define MY_CLASSSHARED_EXPORT Q_DECL_EXPORT
    # else
    #    define MY_CLASS Q_DECL_IMPORT
    # endif

我并不习惯制作图书馆。我在QtCreator下。

我发现“虚拟thunk”可能是某个无法找到的东西(析构函数?)的“函数指针”......

但是,我在互联网上找不到任何明确的内容......

3 个答案:

答案 0 :(得分:1)

问题是GCC之间的配置版本不匹配。

我使用的库是使用GCC 5.4编译的,但是我使用的是GCC 7.4。

当我使用与库相同的GCC来编译代码时,这个奇怪的链接问题就消失了!

答案 1 :(得分:0)

我注意到构造函数尚未实现。这会导致这个问题吗?

答案 2 :(得分:0)

也许它会在未来对某人有所帮助..对我来说,问题是由类中的虚函数声明引起的,该虚函数派生自基础抽象类(在 .hpp 文件中),但在.cpp 文件。