2011-12-14 12 views
0

gccからcygwinを使ってcでプログラムを書いてコンパイルしましたが、コマンドラインからプログラムを実行するとすべて正常に動作します。ただし、実行可能ファイルをダブルクリックすると、コマンドウィンドウが画面上で一時的に点滅しますが、何も起こりません。これがなぜ起こるのでしょうか?私はWindows 7を使用しています。ダブルクリックで実行ファイルを実行する

+0

必要なライブラリはありますか?バットファイルを作成して、正しい場所から実行するようにしてください。 – Bashwork

+0

@ Bashworkそれは同じ場所からどちらの方法でも実行されています... – Daniel

+0

実行ファイルを別の場所にコピーしたかどうかはわかりませんでした。 – Bashwork

答えて

0

グラフィカルアプリケーションですか?そうでない場合は、入力が得られていないので、おそらく開始しています.EOFを確認して(入力を確認していれば)、終了します。終了すると、ターミナルウィンドウは自動的に閉じられます。

2

Cygwinでは、その環境用にコンパイルされたファイルを実行するときにcygwin.dllPATHになる必要があります。 cygwinで何かをコンパイルすると、 cygwinのためにがコンパイルされます。

プログラムの作成を計画している場合は、代わりにMinGWを使用することをお勧めします。 mingwで何かをコンパイルすると、ウィンドウ用にがコンパイルされます。

+1

通常のコマンドプロンプト(cygwinではなく)からプログラムを実行し、エラーをチェックすることで、これが問題であるかどうかを調べることができます。 – nobsid

+0

しかし、私はパスに 'cygwin.dll'を持っているので、何が問題なのですか? – Daniel

+0

通常のコマンドプロンプトから実行すると動作します – Daniel

1

たとえば、「He​​llo World!」という名前のプログラムがあります。コマンドラインに。 "Hello World!"と表示されます。もしそれがcmdから開かれていれば、それをダブルクリックすると印刷され、即座にウィンドウが閉じます。

getch()を試してください。 「続行するには、任意のキーを押してください」と印刷されます。

+0

ウィンドウがすぐに閉じられるかどうかは問題ではありません。私が気にするのは、プログラムの結果だけです。 – Daniel

1

cygwin内でプログラムをコンパイルすると、動的ライブラリcygwin.dllとリンクされます。このファイルの場所があなたのPATH変数にない場合、あなたのプログラムはcygwinの外では全く動作しません。したがって、cygwin.dllを見つけてそのディレクトリをシステムPATH変数に追加してください。

関連する問題