C++ を学ぶ時が来たと判断し、コンパイラを動作させるために 3 時間以上苦労した後、ようやく動作するプログラムを作成しました。しかし、Eclipse でプロジェクトをカット アンド ペーストしてリファクタリングしようとすると、自然に壊れたようです。プログラムは単純にクラッシュし、Windows は「HelloWorld.exe が動作を停止しました」という恐ろしいダイアログを表示します。少しデバッグしたところ、「cout」が不正な引数と見なされていたことが明らかになりました。この問題をさらに調べたところ、64 ビット システムを使用しているため、明らかに 32 ビットであるコンパイラと関係があるのではないかと疑っています。実行可能ファイルは、「HelloWorld.exe - [x86/le]」として Eclipse にリストされます。(ピリオドを引いたものです。)私のプログラム全体は以下のとおりです。
#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 呼び出しを指していることに注意してください。