在所有共享库均已成功解决的情况下,在其他Linux主机上运行二进制文件时出现符号查找错误

问题描述

我遇到了一个非常令人沮丧的问题。我在一个Linux主机上编译了一个C ++程序,即使我在其上运行“ nm -D”,它也可以成功运行

U _ZTINSt3_V214error_categoryE

(而且我知道这个未定义的符号来自它链接到的共享库之一,因为当我在该共享库上运行“ nm -D”时,我可以看到同一行)

然后,我将二进制文件和所需的所有共享库(系统库除外)复制到另一台Linux主机(具有完全相同的发行版和版本),然后将所有共享库放在完全相同的目录中,并相应地设置LD_LIBRARY_PATH(这在两个主机上都相同),然后我使用“ ldd”来验证它们是否均已正确解析。实际上,“ ldd”输出看起来与地址相同。

当我在第二台Linux主机上运行二进制文件时,我得到了

binary_name :符号查找错误 shared_library_name :未定义符号:_ZTINSt3_V214error_categoryE

所以我有两个问题:

首先,当“ nm -D”显示此符号未定义时,二进制文件如何在第一台Linux主机上工作? 第二,据我所知,为什么它不能在第二台Linux主机上运行?

任何帮助将不胜感激,谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)