MinGW-kompilierte Programme stürzen unter 64-Bit-Windows ab

Ich habe 32-Bit-MinGW und 64-Bit-Eclipse-CDT auf 64-Bit-Windows 7 mit Intel installiertCore i7-3612QM. Wenn ich kompiliere und laufehello worldwird die Zeichenfolge gedruckt, aber das Programm erhält eineSIGILL nachher.

Quelle:

#include <iostream>
using namespace std;

int main() {
    cout << "Hello World!" << endl;
    return 0;
}

Stacktrace:

hello.exe [C/C++ Application]   
    hello.exe [5532]    
        Thread [1] 0 (Suspended : Signal : SIGILL:Illegal instruction)  
            libstdc++-6!_ZSt4cout() at 0x6fccc3c0   
            libstdc++-6!_ZNSolsEPFRSoS_E() at 0x6fc8908c    
            _fu0___ZSt4cout() at hello.cpp:5 0x4013be   
    gdb 

Hinzufügencin verursacht einen Segfehler:

Quelle:

#include <iostream>
#include <string>

using namespace std;

int main() {
    string name;
    cout << "Please type your name: ";
    cin >> name;
    cout << "Hello " << name << endl;
    return 0;
}

Ausführliche Compiler-Ausgabe:

C:\Users\Sean\temp>g++ -v main.cpp
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.6.2/lto-wrapper.exe
Target: mingw32
Configured with: ../gcc-4.6.2/configure --enable-languages=c,c++,ada,fortran,obj
c,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --enable-libgo
mp --disable-win32-registry --enable-libstdcxx-debug --enable-version-specific-r
untime-libs --build=mingw32 --prefix=/mingw
Thread model: win32
gcc version 4.6.2 (GCC)
COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=i386' '-march=i386'
 c:/mingw/bin/../libexec/gcc/mingw32/4.6.2/cc1plus.exe -quiet -v -iprefix c:\min
gw\bin\../lib/gcc/mingw32/4.6.2/ main.cpp -quiet -dumpbase main.cpp -mtune=i386
-march=i386 -auxbase main -version -o C:\Users\Sean\AppData\Local\Temp\ccSVBzeY.
s
GNU C++ (GCC) version 4.6.2 (mingw32)
        compiled by GNU C version 4.6.2, GMP version 5.0.1, MPFR version 2.4.1,
MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "c:\mingw\bin\../lib/gcc/mingw32/4.6.2/../../../.
./mingw32/include"
ignoring duplicate directory "c:/mingw/lib/gcc/../../lib/gcc/mingw32/4.6.2/inclu
de/c++"
ignoring duplicate directory "c:/mingw/lib/gcc/../../lib/gcc/mingw32/4.6.2/inclu
de/c++/mingw32"
ignoring duplicate directory "c:/mingw/lib/gcc/../../lib/gcc/mingw32/4.6.2/inclu
de/c++/backward"
ignoring duplicate directory "c:/mingw/lib/gcc/../../lib/gcc/mingw32/4.6.2/inclu
de"
ignoring duplicate directory "/mingw/lib/gcc/mingw32/4.6.2/../../../../include"
ignoring duplicate directory "c:/mingw/lib/gcc/../../include"
ignoring duplicate directory "c:/mingw/lib/gcc/../../lib/gcc/mingw32/4.6.2/inclu
de-fixed"
ignoring nonexistent directory "c:/mingw/lib/gcc/../../lib/gcc/mingw32/4.6.2/../
../../../mingw32/include"
ignoring duplicate directory "/mingw/include"
#include "..." search starts here:
#include <...> search starts here:
 c:\mingw\bin\../lib/gcc/mingw32/4.6.2/include/c++
 c:\mingw\bin\../lib/gcc/mingw32/4.6.2/include/c++/mingw32
 c:\mingw\bin\../lib/gcc/mingw32/4.6.2/include/c++/backward
 c:\mingw\bin\../lib/gcc/mingw32/4.6.2/include
 c:\mingw\bin\../lib/gcc/mingw32/4.6.2/../../../../include
 c:\mingw\bin\../lib/gcc/mingw32/4.6.2/include-fixed
End of search list.
GNU C++ (GCC) version 4.6.2 (mingw32)
        compiled by GNU C version 4.6.2, GMP version 5.0.1, MPFR version 2.4.1,
MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: f7eb4168c2cf10318cc29da8d23b7f3c
COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=i386' '-march=i386'
 c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/as.exe -o C:\User
s\Sean\AppData\Local\Temp\ccb0vTGl.o C:\Users\Sean\AppData\Local\Temp\ccSVBzeY.s

COMPILER_PATH=c:/mingw/bin/../libexec/gcc/mingw32/4.6.2/;c:/mingw/bin/../libexec
/gcc/;c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/
LIBRARY_PATH=c:/mingw/bin/../lib/gcc/mingw32/4.6.2/;c:/mingw/bin/../lib/gcc/;c:/
mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/lib/;c:/mingw/bin/../lib/
gcc/mingw32/4.6.2/../../../;/mingw/lib/
COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=i386' '-march=i386'
 c:/mingw/bin/../libexec/gcc/mingw32/4.6.2/collect2.exe -Bdynamic -u ___register
_frame_info -u ___deregister_frame_info c:/mingw/bin/../lib/gcc/mingw32/4.6.2/..
/../../crt2.o c:/mingw/bin/../lib/gcc/mingw32/4.6.2/crtbegin.o -Lc:/mingw/bin/..
/lib/gcc/mingw32/4.6.2 -Lc:/mingw/bin/../lib/gcc -Lc:/mingw/bin/../lib/gcc/mingw
32/4.6.2/../../../../mingw32/lib -Lc:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../.
. -L/mingw/lib C:\Users\Sean\AppData\Local\Temp\ccb0vTGl.o -lstdc++ -lmingw32 -l
gcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel
32 -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt c:/mingw/bin/../lib/gcc
/mingw32/4.6.2/crtend.o

Stacktrace:

hello.exe [C/C++ Application]   
    hello.exe [9092]    
        Thread [1] 0 (Suspended : Signal : SIGSEGV:Segmentation fault)  
            libstdc++-6!_ZNSs12_Alloc_hiderC1EPcRKSaIcE() at 0x6fc89542 
            libstdc++-6!_ZNSsC1Ev() at 0x6fc8c38b   
            main() at hello.cpp:7 0x4013a7  
    gdb 

Die Probleme treten auch bei Verwendung von 32-Bit aufcode::blocks oder beim manuellen Kompilieren über die Befehlszeile.

Wie kann ich das beheben?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage