gccrun.cmd その4

こうして、コンパイル前に、事前に .exe を削除しておくのだ。

:main
  REM コンパイル前処理
  if exist %srb%.exe del %srb%.exe
  if exist %srb%.rc goto rccompile
  goto compile

次に、ファイル %srb%.rc の存在を確認する。.rc とは、リソーススクリプトファイルの一般的な拡張子である。もし、存在するならば、C のソースとあわせてコンパイルしてやる必要があるため、ラベル rccompile にジャンプする。存在しないなら、ラベル compile に跳ぶ。

:rccompile
  REM リソースファイル付きコンパイル実行
  windres %srb%.rc %srb%.o
  gcc %copt% %src% %srb%.o -o %srb%.exe -s -Wall
  goto run

ラベル :rccompile 以下の処理は、以上のようなコードとなっている。ここでは、まず、windres.exe というアプリケーションを実行する。これは、gcc.exe と一緒に MinGw のパッケージに含まれている。

windres.exe は、リソーススクリプトファイルを .o ファイルに変換するプログラムだ。リソーススクリプトとは、ボタンだったり、ウィンドウタイトルバーの下にあるメニューだったりを簡単にレイアウトして表示・機能させるための言語である。C のソースコードにて、リソーススクリプトファイルに記述してあるそれらを呼び出して使う。

リソーススクリプトファイル %srb%.rc%srb%.o に変換し終えると、次に、gcc によって C ソースコードをコンパイルし、アプリケーションファイル %srb%.exe を生成する。その際、C ソースコード %src% だけでなく、先程の windres で生成した %srb%.o ファイル名も合わせて入力しておく。と、うまくミックスしてコンパイルしてくれるのだ。

こうして、アプリケーション %srb%.exe の生成を実行したあとは、ラベル run に処理が移る。