我决定是时候学习 C++ 了,经过 3 个多小时的努力试图让编译器工作,我终于创建了一个工作程序。但是,当我尝试在 Eclipse 中通过剪切和粘贴来重构项目时,它似乎自发地崩溃了。程序直接崩溃,Windows 弹出可怕的对话框“HelloWorld.exe 已停止工作”。一些调试表明“cout”被认为是一个非法参数。我对这个问题进行了更多研究,现在我怀疑它与编译器显然是 32 位有关,因为我有一个 64 位系统。可执行文件在 Eclipse 中列为“HelloWorld.exe - [x86/le]”。(减去句号。)我的完整程序如下:
#include <iostream>
using namespace std;
int main(){
cout << "Hello World!" << endl;
return 0;
}
我还刚刚发现,在 Eclipse 中创建一个新的“HelloWorld”C++ 项目绝对无法解决问题,即使使用未修改的代码和设置也是如此。有人对为什么会发生这种情况有任何建议吗?
编辑:调试信息:运行程序时:
Hello World!
Program received signal SIGNILL, Illegal instruction.
0x6fccc3c0 in libstdc++-6!_ZSt4cout ()
from C:\Windows\SysWOW64\libstdc++-6.dll
(gdb) bt
#0 0x6fccc3c0 in libstdc++-6~_ZSt4cout ()
from C:\Windows\SysWOW64\libstdc++-6.dll
#1 0x6fc8908c in libstdc++-6~_ZSt4cout ()
from C:\Windows\SysWOW64\libstdc++-6.dll
#2 0x004013be in libstdc++-6~_ZSt4cout () at HelloWorld.cpp:4
(gdb)
应该注意的是,类的第 4 行现在指向 cout 调用。