对于本文的含糊之处,我感到抱歉,但是我无法共享代码,无论如何,共享太多了。
我有这个共享库“ shared”,它是由另一个库加载的。问题是,在加载共享库时,出现错误消息,提示“未定义的符号:_ZplPKcRK18ExampleClass”
我遇到的问题是在共享库中声明并定义了ExampleClass。我确保ExampleClass正确定义,并且.h和.cpp实际上正在编译。
我对此感到非常困惑,因此任何见解都会非常有帮助。
我正在CentOS 7上使用cmake 3.6.2和gcc 4.8.5进行构建。
答案 0 :(得分:0)
这是一个问题,通常在加载到共享库中然后尝试从该库进行编码时会发生。由于库的链接不是在编译后立即发生的,因此您不会遇到任何与文件相关联的链接器错误以及动态加载文件的错误。查看一个demangler(c ++ filt)并尝试获取有关“ _ZplPKcRK18ExampleClass”所引用内容的更多信息。
根据我的经验,通常是由于方法签名不匹配而导致的,并且代码不知道库加载后在哪里跳转。