2012-12-19 12 views
9

CodeBlocksについて私が気に入っていることの1つは、プロジェクトを作成せずにファイルをすばやく作成し、コンパイルして実行できることです。しかし、これは私のすべてのプログラムにコンソールウィンドウがあることを意味します。コンソールウィンドウは、ほとんどのWindowsアプリケーションでは普通ではないものです。CodeBlocksの追加のリンカーオプションでサブシステムを指定するにはどうすればよいですか?

は、それを取り除くために、私はいつも、プロジェクトを作成中に、私のファイルを投げる、と私はちょうどコンソールアプリケーションの代わりにGUIアプリケーションをクリックしてください可能性がどこに移動しなければなりませんでした。

しかし、g ++ .exeとld.exeを使用してビルドするときに同じことを明示的に指定することは可能ですが、CodeBlocksにはリンカーオプションが追加されているセクションがありますので、明らかに私は間違っていた。

まず、this questionが見つかりました。誰がそれに答えたのか分かって驚いたが、それは私には役に立たない。その全体のポイントは、私が同額の努力をしてを使わずにプロジェクトを作ることができるということだ。

明らかに、-mwindowsコンパイラオプションがそれを行います。そのため、私はSettings\Compiler and Debugger\Compiler settings\Other optionsに入れてみました。コンパイルとリンクは正常ですが、コンソールウィンドウはまだあります。

次に、Settings\Compiler and Debugger\Linker settings\Other linker optionsを試しました。 Googleの成果によって、私はそこに次のものを追加しようとしました。一度に1つのオプションがアクティブになり、再構築されました。 -mwindowsをアクティブにすると、私の言う限りでは違いはありません。

-Wl:認識されないコマンドラインオプション
--subsystem、窓:認識されないコマンドラインオプション
--subsystem、窓:窓 - そのようなファイルやディレクトリはありません。
--subsystem windows:windows - このようなファイルやディレクトリはありません。
--subsystem = windows:Unregocnizedコマンドラインオプション
--subsystem、console:console - このようなファイルまたはディレクトリはありません。

このテストは、すべての符号ブロック、コードブロック12.11の最新リリースで行われ、GCC 4.7.2、this MinGW distro(バージョン9.4)から入手しました。しかし、私はCodeBlocks 10.05と同じように動作することは確かです。

私はプロジェクトを使用したり、makefileを使用したり、コマンドラインからビルドしたりする必要がありますか、CodeBlocks IDEのグローバル設定でこの設定を変更することは可能ですか?

+0

* "ただし、まだコンソールウィンドウがあります" *。 GUIウィンドウが現れましたか? –

+0

@ MarkGarcia、私が実際にテストしているのはGUIウィンドウがありません。しかし、私はGUIレスのプログラムをプロジェクトに入れて、うまくいきました。プログラムを起動すると、ユーザーは気づかないでしょう。サービスが言及される前に、それは相互作用する必要があります。実際にはサービスから開始されます。通常、私は一般的な習慣を遵守しますが、これはまったく通常のアプリケーションではありません - それは冗談として意味されます。しかし答えの中で説明されているテクニックは、GUIを使ってプログラム*にも同様に適用できます:) – chris

+0

@MarkGarcia、申し訳ありませんが、私はあなたの質問にすべて答えていません。私はウィンドウでそれを見つけ、 '-mwindows'でコンパイルして実行しようとしました。コンソールとウィンドウの両方が表示されます。 – chris

答えて

6

これを行うには、-Wl,--subsystem,windowsをリンカーに渡すことが適切です。動作しないように見える場合は、どこかにスペースを挿入していないことを確認してください。引数をそのまま使用してください。

+0

私はこれをしなければなりません: '-Wl、-subsystem:windows' –

関連する問題