【问题标题】:undefined symbol when loading shared library加载共享库时未定义的符号
【发布时间】:2019-08-30 20:42:06
【问题描述】:

很抱歉这篇文章含糊不清,但我无法分享代码,无论如何,分享太多了。

我有这个共享库,“shared”,它是由另一个库加载的。问题是在加载共享库时,我收到错误消息“未定义符号:_ZplPKcRK18ExampleClass”

我遇到的问题是 ExampleClass 是在共享库中声明和定义的。我确保 ExampleClass 已正确定义,并且 .h 和 .cpp 实际上正在编译。

我对此感到非常困惑,因此任何见解都会非常有帮助。

我在 CentOS 7 上使用 cmake 3.6.2 和 gcc 4.8.5 进行构建。

【问题讨论】:

标签: c++ gcc linker shared-libraries libraries


【解决方案1】:

这是一个通常在加载到共享库中然后尝试从该库编写代码时发生的问题。由于库的链接不是在编译后直接发生的,因此您不会收到任何与文件相关联的链接器错误以及动态加载它的内容。查看 demangler(c++filt) 并尝试获取有关“_ZplPKcRK18ExampleClass”引用的更多信息。

根据我的经验,这通常类似于方法签名不匹配,并且在加载库后代码不知道在哪里分支。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 2012-04-07
    • 2018-03-10
    • 1970-01-01
    相关资源
    最近更新 更多