根据优化级别调试hello world崩溃的构建

时间:2014-08-13 17:31:01

标签: c++ gcc mingw windows-8.1

当我进行调试构建时,这个简单的hello world程序(取自eclipse)在退出时崩溃:

#include <iostream>
using namespace std;

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

我用它构建它:

g++ -O0 -g3 -Wall -c -fmessage-length=0 -o main.o "..\\main.cpp" 
g++ -o test.exe main.o 

当我运行test.exe时,控制台会打开(带有消息),但我也收到一条崩溃消息(test.exe已停止工作),错误代码为0xc0000005(访问冲突)。现在如果我用-O1而不是-O0编译同一个文件,生成的可执行文件运行没有问题。我正在运行Windows 8.1(64位),可执行文件是32位,我正在使用mingw和g ++版本4.8.1。

有人知道可能导致此问题的原因吗?

1 个答案:

答案 0 :(得分:0)

如果这样一个简单的代码出现问题,那很可能是这个版本的mingw中有这组编译器密钥的错误。在mingw支持中写下这种行为可能很有用。