如何解决在所有共享库均已成功解决的情况下,在其他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 举报,一经查实,本站将立刻删除。