Windows 7 64ビットPCを使用していて、無料のC++ IDEをインストールしようとしているため、Eclipse HeliosとCDTをインストールすることにしました。
G ++、makeおよびgdbの場合、このチュートリアルに従ってmsysとmingwをインストールしました。 http://wiki.wxwidgets.org/HowTo:_Install_MSYS_and_MinGW_for_use_with_Eclipse_CDT
バージョンは次のとおりです。
したがって、64ビットCPUと互換性があるはずです。
しかし、Eclipseで非常に単純なプログラムを実行しようとすると、コンソールに何も表示されません。ソースコードは次のとおりです。
#include <iostream>
using namespace std;
int main()
{
int i;
cout << "Enter an integer: " << endl;
cin >> i;
cout << endl << "i is " << i << endl;
return 0;
}
ビルドは問題なく、コマンド(Windowsコンソール)を使用して.exeを起動したときの動作は期待どおりです。しかし、Eclipseコンソールでは実行時に何も表示されず、デバッグでは「整数を入力してください」という出力が表示されます。その後、数値を入力してEnterキーを押しても何も実行されません。
誰でもこれを修正する方法を知っていますか?
ありがとう、
ギヨーム
PS:私はツールチェーン「Linux GCC」と「MinGW GCC」を使用していますが、コンソールには何もありません。
このコンソールのバグは、Eclipseの64ビットバージョンで確認されています。
http://www.Eclipse.org/forums/index.php?t=msg&th=197552&start=0&S=2a2b64e1f1404705c0214976bd477428
回避策は、32ビットEclipseをインストールすることです
これは、MinGWを使用したWindows 7でのEclipseの64ビットインストールで機能しました。
プロジェクトを右クリックします。 「プロパティ」を選択します。
新しいウィンドウの左側にある「実行/デバッグ設定」プロパティを選択します。
右側のウィンドウで、実行可能ファイルをクリックして強調表示し(つまり、Test.exe)、[編集]をクリックします。
[環境]タブで、[新規]を押します
名前: 道
値: MinGW binディレクトリへのパス。 (私にとってこれは:C:\devcore\MinGW\bin
)
すべてのウィンドウで「OK」をクリックして閉じます。
もう一度実行してみてください。出力が画面に出力されるはずです。
MinGWを使用しているリンカーを設定する必要があります。
以下の手順に従ってください。
Goto Project > Properties > C/C++ Build > Settings > Tool Settings (Tab) > MinGW C++ Linker (Option) > Add Command (g++ -static-libgcc -static-libstdc++) (default command is only g++)
purlogicのソリューションは機能します。すべてのプロジェクトに設定する代わりに、グローバルに設定できることがわかりました。
[ウィンドウ]-> [設定]-> [C/C++]-> [ビルド]-> [環境]コンパイラの変数を追加します。たとえば、「C:\ MinGW\bin」という値のMINGWを追加しました
1台のPCに複数のgccがインストールされているため、同じ問題に遭遇しました。しかし、 Gregのソリューション は私にとって部分的にしか機能しませんでした。
私の場合、フラッシュはアプリケーションで明示的に行われませんでした。 C++プログラムではstd::cout << ... << std::endl
endl
がフラッシュする場合、私のプログラムは通常のprintf
などの実際のC出力を使用しました。 printf
は、cmd-windowでプログラムを起動するときに直接見ることができます。しかし、Eclipseコンソールではそれらが欠落していました。したがって、
fflush(stdout);
printf
が私のためにした後。これは、Eclipseコンソール実装内の問題になる可能性があります。だからこそ、ここで一部の人々にとってパスの修正が機能しなかったのだと思います。
「実行」設定内でPATHを設定する代わりの代替ソリューションは、基本的に次のようなバッチファイルを使用してEclipse全体を起動することです。
set PATH=<mymingwlocation>\bin;%PATH%
start <myeclipselocation>\Eclipse.exe
次に、実行構成はデフォルトで正しいMingWロケーションを使用します。また、間違ったgccを使用することで発生する可能性のある他の問題も修正される可能性があります。
管理者権限でEclipse.exeを実行しようとしましたか?それは私のために働いた!
64/32ビットEclipse Kepler CDTでこの問題が発生し、MinGWを使用してopenCV/wxWidgetsツールWin7で動作するようになりました。
この問題を抱えている間に誰かがこれに出くわし、openCVで作業している場合、インターネット上には多くの古いopenCVのビルド/インストール手順があることを既に知っているでしょう。
私が持っていたのは、[ビルド設定]-> [リンカ]-> [その他]に移動し、[リンカフラグ]テキスト入力ボックス内に-Wl,--subsystem,windows -mwindows
ただし、これによりcoutはWindowsのコマンドライン端末に出力できなくなります。
これをさらに掘り下げると、意図的に見えます。明らかに、-mwindowsには、STDOUTをコマンドラインからGUIに似たアプリケーションに向ける必要があります。
また、-mwindows
そしてそのまま-Wl,--subsystem,windows
は、とにかくコマンドラインからSTDOUTをリダイレクトするというタスクをすべて完了します。
さて、wxWidgetsとopenCVを含むハローワールドプログラム以外にはまだ何も作成していないので、GUIの一部に対処する時点ではないので、その機能がどうなるかわかりません現在は壊れているか、GUIオブジェクトとコマンドライン端末に出力される場合。
または、リンカオプション-static
。少なくとも私のために動作します。