11

CodeBlocks の優れている点の 1 つは、プロジェクトを作成せずにファイルをすばやく作成、コンパイル、実行できることです。ただし、これは、私のすべてのプログラムにコンソール ウィンドウがあることを意味します。これは、ほとんどの Windows アプリケーションでは正常ではありません。

それを取り除くには、常にプロジェクトを作成し、ファイルを投入して、Console Applicationの代わりにGUI Applicationをクリックできる場所に移動する必要がありました。

ただし、g++.exe と ld.exe を使用してビルドするときに同じことを指定することは明らかに可能であり、CodeBlocks には追加のリンカー オプションのセクションがあるので、そこに貼り付けて、常にプロジェクトを作成する手間を省くことができると考えました。しかし、明らかに私は間違っていました。

まず、この質問を見つけました。誰が答えたのかを知ったときは驚きましたが、プロジェクトを作成しなくてもほぼ同じ労力でできるというのがポイントなので、それは私には役に立ちません。

どうやら、-mwindowsコンパイラ オプションがそれを行うので、それを に入れてみましSettings\Compiler and Debugger\Compiler settings\Other optionsた。コンパイルとリンクは正常に行われますが、まだコンソール ウィンドウが表示されます。

次にやってみSettings\Compiler and Debugger\Linker settings\Other linker optionsました。Google の結果を参考にして、次のオプションを一度に 1 つずつアクティブにし、再構築してみました。私-mwindowsが知る限り、アクティブであっても違いはありません。

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

このテストはすべて、この MinGW ディストリビューション(バージョン 9.4)から入手した CodeBlocks、CodeBlocks 12.11、および GCC 4.7.2 の最新リリースで行われました。ただし、CodeBlocks 10.05 でも同じように動作することは確かです。

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

4

1 に答える 1

8

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

于 2012-12-20T15:00:04.233 に答える