Ele*_*ito 5 c++ linker dynamic-cast dlopen undefined-reference
我有一个 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
Run Code Online (Sandbox Code Playgroud)
我尝试添加-rdynamic到我的链接器命令中,但这似乎没有改变任何东西。我能做些什么吗?
由于我看到很多关于未定义虚函数导致的相同错误消息的问题,我应该提到我确定这不是我的问题。
另外我应该补充一点,我确定这与dynamic_cast有关,因为如果我用正常(Impl*)的转换替换dynamic_cast,代码链接正确。