gcc の導入と utf-8 コンパイル
Windows 用のフリーソフト MinGw には、gcc というコンパイラが含まれており、これで C のソースコードをコンパイルして、拡張子 EXE のアプリケーションを生成することができる。ようするに、Windows 用のソフトをつくるソフトである。
パスを通す
導入は簡単で、たとえば C:\MinGw\
というフォルダを指定してインストールしたのち、環境変数 Path に C:\MinGw\bin\
を加えればよい。この行為のことを「パスを通す」と呼ぶ。こうすることによって、コマンドプロンプトにて、カレントディレクトがどこであっても、gcc.exe こと gcc
コマンドを実行することができるようになる。gcc.exe は C:\MinGw\include\
フォルダなどを参照するが、それらのフォルダのパスまでをも通す必要はない。
gcc を用いたコンパイルとリンクは至って簡単で、C ソースコード hello.c
に対しては、以下のようなコマンドを実行すればよい。
gcc hello.c -mwindows -DUNICODE
コマンドラインオプション
重要なオプションが 2 つある。
- -mwindows
- -DUNICODE
コンソール画面を開かないようにする
まず、-mwindows
というオプションである。これを付加すると、典型的な Windows GUI アプリケーションとしてコンパイルする。
gcc --help -v
というコマンドを実行すると、オプション一覧と、その効果が表示されるが、そこでは、以下のように説明されている。
-mwindows Create GUI application
utf-8 のソースをコンパイルする
-DUNICODE
というオプションは、文字コードが utf-8 のソースコードをコンパイルするために必要なものだ。
たとえば、Unicode 文字の☃雪だるまマークを表示する、次の snow.c
というソースコードがあったとする。文字コードは utf-8 だ。
#include <windows.h> int WINAPI WinMain(HINSTANCE hi, HINSTANCE hp, LPSTR cl, int cs) { MessageBox(NULL, TEXT("☃"), TEXT(""), MB_OK); return 0; }
gcc snow.c -mwindows -DUNICODE
でコンパイルすると、正しい雪だるまマークを表示することができる。
☃
gcc snow.c -mwindows
だと、文字化けする。
笘・