导入错误:没有模块名称libstdcxx

时间:2015-09-04 04:16:56

标签: python c++ c linux

当我使用gdb使用分段错误调试我的C ++程序时,我在gdb中遇到此错误。

  

追踪(最近一次通话):     文件“/ usr / share / gdb / auto-load / usr / lib / x86_64-linux-gnu / libstdc ++。so.6.0.19-gdb.py”,第63行,       来自libstdcxx.v6.printers导入register_libstdcxx_printers   ImportError:没有名为'libstdcxx'的模块

我正在使用Gdb 7.7.1和g ++版本4.8.4。我用谷歌搜索但没有得到答案。任何人都可以解决我的错误吗?非常感谢你。

4 个答案:

答案 0 :(得分:17)

这是/usr/lib/debug/usr/lib/$triple/libstdc++.so.6.0.18-gdb.py中的错误; 当你启动gdb时,请输入:

python sys.path.append("/usr/share/gcc-4.8/python");

答案 1 :(得分:10)

我在emacs中使用gdb时遇到此错误。 (在docker容器中 - ubuntu) 我尝试过如下并且效果很好。

(1)打开libstdc ++。so.x.x.x-gdb.py

(define (sublis alist tree)
  (if (pair? tree)
      (cons (sublis alist (car tree))
            (sublis alist (cdr tree)))
      (if (assv tree alist)
          (cdr (assv tree alist))
          tree)))

(2)修改该文件(libstdc ++。so.x.x.x-gdb.py )如下所示。

sh> sudo vi /usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19-gdb.py

(3)再次执行gdb

import sys 
import gdb 
import os
import os.path

pythondir = '/usr/share/gcc-4.8/python'
libdir = '/usr/lib/x86_64-linux-gnu'

sys.path.append(pythondir)    <-- add this code

答案 2 :(得分:0)

如果您使用sudo启动gdb,请确保PATH正确无误。

试试这个sudo PATH=$PATH gdb ...

答案 3 :(得分:0)

我从gcc安装路径中选择了libstdcxx,这个错误对我来说消失了。

sys.path.insert(0, '/global/freeware/Linux/RHEL6/gcc-6.2.0/share/gcc-6.2.0/python')