2014-12-18 1 views
6

hier mein CPP-Programm istC++ Basisprogramm Segmentierungsfehler

#include <iostream> 

int main(int argc, char *argv[]){ 
    return 0; 
} 

kompilieren und diese Ausführung bewirkt eine seg Fehler:

[18:08 ~] > g++ test.cpp 
[18:09 ~] > ./a.out 
Segmentation fault 

Hat jemand bitte eine Idee zu diesem Problem haben? Vielen Dank für Ihre Hilfe.

Hier sind einige Details, die nützlich sein könnten:

[18:13 ~] > ldd a.out 
linux-vdso.so.1 => (0x00007fff3fdff000) 
libstdc++.so.6 => /usr/lib/gcc/x86_64-redhat-linux/3.4.6/libstdc++.so.6 (0x00007fc8f4a53000) 
libm.so.6 => /lib64/libm.so.6 (0x00007fc8f47ce000) 
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fc8f45b8000) 
libc.so.6 => /lib64/libc.so.6 (0x00007fc8f4225000) 
/lib64/ld-linux-x86-64.so.2 (0x00007fc8f4ca5000) 

und auch gdb:

[18:15 ~] > gdb ./a.out 
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6) 
Copyright (C) 2010 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. Type "show copying" 
and "show warranty" for details. 
This GDB was configured as "x86_64-redhat-linux-gnu". 
For bug reporting instructions, please see: 
<http://www.gnu.org/software/gdb/bugs/>... 
Reading symbols from ...done. 
(gdb) run 
Starting program: a.out 

Program received signal SIGSEGV, Segmentation fault. 
0x00007ffff7bd48ec in std::ios_base::Init::Init()() from /usr/lib/gcc/x86_64-redhat-linux/3.4.6/libstdc++.so.6 
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.107.el6.x86_64 libgcc-4.4.7-3.el6.x86_64 
(gdb) bt 
#0 0x00007ffff7bd48ec in std::ios_base::Init::Init()() from /usr/lib/gcc/x86_64-redhat-linux/3.4.6/libstdc++.so.6 
#1 0x0000000000400831 in __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iostream:77 
#2 0x0000000000400873 in global constructors keyed to main()() at test.cpp:7 
#3 0x0000000000400976 in __do_global_ctors_aux() 
#4 0x00000000004005a3 in _init() 
#5 0x00007fffffffe448 in ??() 
#6 0x0000000000400905 in __libc_csu_init() 
#7 0x00007ffff7385c70 in __libc_start_main() from /lib64/libc.so.6 
#8 0x0000000000400659 in _start() 
(gdb) 

g ++

[10:14 ~] > g++ -v 
Reading specs from /usr/lib/gcc/x86_64-redhat-linux/3.4.6/specs 
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-languages=c,c++,f77 --disable-libgcj --host=x86_64-redhat-linux 
Thread model: posix 
gcc version 3.4.6 20060404 (Red Hat 3.4.6-19.el6) 

und letzte, was

[10:25 ~] > ls /usr/lib/gcc/x86_64-redhat-linux 
3.4.6 

Danke.

+0

Welche Version meldet g ++? ('g ++ -v') – Mat

+0

Hallo Mat, danke. Ich habe meinen ersten Thread mit mehr Details aktualisiert – dark

Antwort

2

So scheint Ihr Problem ist, dass Ihre g ++ Installation beschädigt ist. Ich sehe aus den Nachrichten, dass Sie RHEL6 haben, aber irgendwie Version 3.4.6 von libstdC++.

Mein RHEL6-System hat Version 4.4.6 von gcc, libstdC++, etc. Ich nehme an, dass diese ältere Version von libstdC++ mit Ihrem Problem zusammenhängt.

Welche Versionen haben Sie von gcc, g ++ und libstdC++ installiert? Von den anderen Nachrichten sieht es so aus, als hätten Sie 4.4.7, aber haben Sie zufällig mehrere Versionen oder gemischte Versionen?

rpm -q gcc g++ libstdc++ 

Auch, was andere Verzeichnisse haben Sie unter/usr/lib/gcc/x86_64-RedHat-Linux?

ls /usr/lib/gcc/x86_64-redhat-linux 
+0

Hallo Russel, danke. Ich habe meinen ersten Thread mit mehr Details aktualisiert – dark

+0

Meine beste Vermutung an diesem Punkt ist, dass Sie zwischen Versionen von g ++ und libgcc nicht übereinstimmen und sie nicht kompatibel sind. Aus den Informationen, die Sie bisher bereitgestellt haben, sieht es so aus, als hätten Sie Version 3.4.6 von g ++ und libstdC++, aber Version 4.4.7 von libgcc. Ich kann nicht sagen, welche Version von GCC Sie haben, aber ich vermute 4.4.7. Ich würde empfehlen, g ++ und libstdC++ zu aktualisieren, damit sie der Version von gcc entsprechen, die Sie haben. Es sei denn, gcc ist auch 3.4.6, und in diesem Fall könntest du libgcc einfach zurückstufen, um zu passen. –

+0

Wenn Sie die Versionen auf alle zusammenbringen, wird Sie das nicht beheben, ich würde empfehlen, die gcc-Mailinglisten um Hilfe zu bitten. –

0

ich denke, dass Sie etwas vermissen, während g Installation ++

Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.107.el6.x86_64 libgcc-4.4.7-3.el6.x86_64