我有一个C ++类,其定义将在运行时通过dlopen
加载。虽然我无法联系到它。我得到错误,说有一个"未定义的对typeinfo"。
代码的相关部分如下所示:
class Interface { ... };
class Impl : public Interface { ... };
Interface *Create() { ... }
// Load shared object around here
Impl *impl = dynamic_cast<Impl*>(Create()); // Undefined reference to typeinfo
我尝试将-rdynamic
添加到我的链接器命令中,但这似乎没有改变任何东西。我能做点什么吗?
由于我看到很多关于由未定义的虚函数引起的同一错误消息的问题,我应该提一下,我确定这不是我的问题。
另外我应该补充一点,我确定这与dynamic_cast有关,因为如果我用正常(Impl*)
强制替换dynamic_cast,代码会正确链接。