gpt4 book ai didi

c++ - 在 gdb 中找不到 GLIBCXX

转载 作者:太空宇宙 更新时间:2023-11-04 11:00:41 25 4
gpt4 key购买 nike

我尝试使用 gdb 调试程序,但在运行命令后出现错误(在 gdb 内)

/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found

我确保设置了 LD_LIBRARY_PATH,即 set env LD_LIBRARY_PATH,因为它在调用 shell 中,如果启动程序,则不会出现此错误消息。

这个错误是因为没有安装libc++的调试版本吗?

最佳答案

Is this error due to not installed debug versions of libc++

没有。

您没有使用 libc++ ,您正在使用 libstdc++ ,这是完全不同的。该问题与 libstdc++ 的调试版本无关。要么。

问题有两个:

  1. 您正在使用比您系统上安装的版本更新的 GCC 版本构建您的二进制文件,这种方式需要您设置 LD_LIBRARY_PATH
  2. 你有~/.bashrc~/.cshrc~/.zshrc 重置 LD_LIBRARY_PATH .这会阻止 GDB 运行您的二进制文件,因为 gdb run命令实际上执行 $SHELL /path/to/binary <args> , 因为你的 shell 重置了 LD_LIBRARY_PATH ,当您的二进制文件运行时,LD_LIBRARY_PATH已经不正确了。

通常最好构建您的二进制文件,这样它就不需要设置 LD_LIBRARY_PATH首先。这是通过添加 -Wl,-rpath=/path/to/directory-containing-correct-libstdc++.so.6 来实现的到您的链接行。

这解决了问题 #1,并允许您使用 GDB 调试二进制文件。

您还应该更改您的 ~/.bashrc这样它就不会对非交互式 shell 执行任何操作。这document展示了如何实现这一目标。

关于c++ - 在 gdb 中找不到 GLIBCXX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27137579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com