对于设置,参阅以下简单的C ++程序hw.cpp
:
linux-gate.so.1 => (0x003e5000)
libstdc++.so.6 => /usr/local/lib/libstdc++.so.6 (0x007c5000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x006a4000)
libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 (0x00a40000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00a93000)
/lib/ld-linux.so.2 (0x00a0f000)
现在我似乎还有调试库/usr/lib/debug/lib/tls/i686/cmov/
,我想是系统库的相应调试版本。
如何编译我的程序,使其与标准C和/或C ++库的调试版本,libc
/ libm
/ libstdc++
,共享或静态链接?
发布于 2018-04-19 19:15:44
在许多Linux安装中,调试库不包含真正的代码; 它们只包含调试信息。两者是分开的,这样如果你不需要它们,并且你缺少磁盘空间,你可以选择不安装它们,但是调试库本身并不好。
GDB通常预先配置为在需要时查找调试库。
当然,你的系统可能不同。你不说这是什么。
发布于 2018-04-19 19:38:25
你的程序被链接到调试库。
只有'ldd ./hw'在标准位置找到libstdc ++。为此,需要更改LD_LIBRARY_PATH以获取调试共享库以加载并ldd以正确查找它们。
https://stackoverflow.com/questions/-100008205
复制相似问题