Debug build of hello world crashes, depending on optimization level
这个简单的hello world程序(从eclipse中获取)在我进行调试构建时退出时崩溃:
1 2 3 4 5 6 7 | #include <iostream> using namespace std; int main() { cout <<"!!!Hello World!!!" << endl; // prints !!!Hello World!!! return 0; } |
我用以下方法构建它:
1 2 | 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。
有人知道什么可能导致此问题吗?
如果在这样一个简单的代码上有问题,则很可能是在此版本的mingw中使用此组编译器密钥的错误。在mingw支持中写此行为可能很有用。