2014-12-18 3 views
6

qui è il mio programma CPPC++ di base colpa programma di segmentazione

#include <iostream> 

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

la compilazione e l'esecuzione di questa, provoca un errore seg:

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

Qualcuno ha un'idea su questo problema per favore? Grazie mille per il vostro aiuto.

Qui ci sono alcuni dettagli che potrebbero essere utili:

[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) 

e anche 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) 

e l'ultima cosa

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

Grazie.

+0

Quale versione g ++ segnala? ('g ++ -v') – Mat

+0

Ciao Mat, grazie. Ho aggiornato la mia prima discussione con ulteriori dettagli – dark

risposta

2

Quindi a quanto pare il problema è che il vostro g ++ installazione è rotto. Vedo dai messaggi che hai RHEL6, ma in qualche modo ho la versione 3.4.6 di libstdC++.

Il mio sistema RHEL6 ha la versione 4.4.6 di gcc, libstdC++, ecc. Presumo che questa versione precedente di libstdC++ sia correlata al tuo problema.

Quali versioni sono state installate di gcc, g ++ e libstdC++? Dagli altri messaggi, sembra che tu abbia 4.4.7, ma ti capita di avere più versioni o versioni miste?

rpm -q gcc g++ libstdc++ 

Inoltre, quale altra directory avete sotto/usr/lib/gcc/x86_64-redhat-linux?

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

Ciao Russel, grazie. Ho aggiornato il mio primo thread con maggiori dettagli – dark

+0

La mia ipotesi migliore a questo punto è che tu abbia una mancata corrispondenza tra le versioni di g ++ e libgcc e non siano compatibili. Dalle informazioni che hai fornito fino ad ora, sembra che tu abbia la versione 3.4.6 di g ++ e libstdC++, ma la versione 4.4.7 di libgcc. Non posso dire quale versione di gcc hai, ma sospetto 4.4.7. Consiglierei l'aggiornamento di g ++ e libstdC++ in modo che corrispondano alla versione di gcc che hai. A meno che gcc non sia anche 3.4.6, e in tal caso potresti semplicemente eseguire il downgrade di libgcc per farlo corrispondere. –

+0

Se non si risolvono le versioni con tutte le versioni, ti consiglio di consultare la mailing list di gcc. –

0

penso che ti manca qualcosa in fase di installazione g ++

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