libstdc ++在ubuntu 64位崩溃

时间:2013-02-25 12:46:03

标签: c++ linux

我从RHEL6.2系统64位机器编译的GUI库很少。我的任务是在Ubuntu 64位机器上运行它.. 所以我试了一下 Ubuntu 12.04.1& Ubuntu 11.04 在我们面临类似的问题..

  

分段错误(核心转储)    * 分段错误

     

回溯:   / usr / lib中/ x86_64的-Linux的GNU /的libstdc ++。so.6(_ZNSsC1ERKSs + 0XB)[0x7f14e2728f2b]

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff5070f2b in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&) ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (gdb) bt
#0  0x00007ffff5070f2b in std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::basic_string(std::string const&) ()    from /usr/lib/x86_64-linux-gnu/libstdc++.so.6

我无法将其编译到我的电脑上,因为我无法获得源代码。只有他们给我的图书馆.. 任何人都可以帮我解决这个问题..

G ++版 g ++(Ubuntu / Linaro 4.6.3-1ubuntu5)4.6.3

请帮助我..提前谢谢//


感谢回复..

是的,我交叉检查了两个gcc版本

这是我的主机电脑,我可以运行我的应用程序

 gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
    Copyright (C) 2011 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.



     ls -ld /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    lrwxrwxrwx 1 root root 19 Apr 16  2012 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 -> libstdc++.so.6.0.16

和我试图运行但不工作的PC

gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


ls -ld  /usr/lib/x86_64-linux-gnu/libstdc++.so.6
lrwxrwxrwx 1 root root 19 Apr 16  2012 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 -> libstdc++.so.6.0.16

两者都是精确的Ubuntu 12.04

我无法确定我的错误所在。

请帮助..

1 个答案:

答案 0 :(得分:1)

Ubuntu 12.04和11.04都使用比RHEL6.2更新的库。检查stdlib的版本。我打赌他们是不同的。

一般来说,你不能只拿起二进制文件(程序或库)并在另一个上运行它。如果你有.rpm或.deb包,你会发现应该有版本依赖。

您也可以使用ldd。

查看您的库所依赖的其他库