題して
ところで、この内容をもとに昨年C-Magazineに記事を書かせていただきました。 本来なら、その後も継続して新しい情報をお伝えしていきたいのですが、 もう1年以上も更新が止まっています。したがって、このページの内容は 非常に古いものばかりです。ごめんなさい。
それはさておき、まあ便利には便利だし買ってみようかと店に向かったところ、 なんと種類があるではありませんか。Professional EditionとLearning Edition。 どっちを買えばいいんだ?!。パッケージを眺めても違いが分かりません。 Learning Editionの方なら(AcademicPriceで)1万円台なので買ってもいいかなって感じです。 うーんLeaning Editionでいいのかな〜いいのかな〜と思ったものの不安だったので よくよく調べたら、「Leaning Editionはオプティマイザが ついていなくて、コンパイルしたバイナリを販売できない」とのことです。 うーん、あんまり嬉しくないからやっぱりProfessional Editionにしようと 思ったのですが、こっちは3万円以上します。うー。うー。だったらMicrosoftに 金払うよりはBorlandかWatcomに払った方がいい。
ちょっとまて、gccはないのか?
はい、ありました。便利な世の中ですね。 こちら にいろいろ情報があります。 まとめると次のようになるみたいです。
move-win32 c:\gnuwin32\b18 c:\mingw32を実行します。引数の二つのディレクトリはそれぞれcygwin32のインストール先と mingw32の展開先です。エラーメッセージが表示される場合はパスの指定が 間違っている場合があります。再度確認してください。
続いて環境変数などの設定をします。 command.comを使っている場合は次の内容をautoexec.batに加えます。
PATH=%PATH%;C:\gnuwin32\b18\H-i386-cygwin32\bin;C:\gnuwin32\b18\tcl\bin SET TCL_LIBRARY=C:/gnuwin32/b18/tcl/lib/tcl7.6 SET GDBTK_LIBRARY=C:/gnuwin32/b18/share/gdbtcl SET GCC_EXEC_PREFIX=C:\gnuwin32\b18\H-i386-cygwin32\lib\gcc-lib\ SET LIBRARY_PATH=C:\gnuwin32\b18\H-i386-cygwin32\lib;c:\mingw32\win32\lib; SET C_INCLUDE_PATH=c:\mingw32\win32\include; SET CPLUS_INCLUDE_PATH=c:\mingw32\win32\include;tcshの場合は次の内容を.tcshrcに加えます。
path=(c:/gnuwin32/b18/H-i386-cygwin32/bin c:/gnuwin32/b18/tcl/bin $path); setenv TCL_LIBRARY C:/gnuwin32/b18/tcl/lib/tcl7.6 setenv GDBTK_LIBRARY C:/gnuwin32/b18/share/gdbtcl setenv GCC_EXEC_PREFIX C:\\gnuwin32\\b18\\H-i386-cygwin32\\lib\\gcc-lib\\ setenv LIBRARY_PATH C:\\gnuwin32\\b18\\H-i386-cygwin32\\lib;c:\\mingw32\\win32\\lib; setenv C_INCLUDE_PATH c:\\mingw32\\win32\\include; setenv CPLUS_INCLUDE_PATH c:\\mingw32\\win32\\include;これらの環境変数の設定を反映させます(DOSプロンプトを再起動させるとか、 source .tcshrcするとか)。
以上でインストールは終了です。
c:\gnuwin32\b18\H-i386-cygwin32\bin にはUNIXコマンドが沢山ころがっています。
#include <stdio.h> int main () { printf ("Hello, world!\n"); return 0; }できたらコンパイルです。
gcc -o hello.exe hello.cうまくgccがインストールされていればhello.exeが作成されるはずです。 cppが見付からないとかライブラリが見付からないとかincludeファイルが見付からない と言われたら環境変数の値を再度確認してください。またreadme.txtにも トラブル対処法の指針があります。 コンソールからhello.exeを実行すると、Hello, world!と表示されるはずです。
次はWin32のアプリケーションです。同じくreadme.txtにある次のプログラムを test.cというファイル名で作成します。
#include <windows.h> int STDCALL WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow) { MessageBox (NULL, "Test message", "Test", MB_OK); return 0; }コンパイルします
gcc -o test.exe test.c -luser32test.exeを実行すると、ダイアログが一つ表示されるはずです。これで Win32APIを用いたプログラミングはできる環境になりました。
gcc -o main.exe main.c -lddraw -luser32 -lgdi32必要に応じて適当にインクルードファイルのpathを指定します。 でもできたmain.exeはなんにもしないプログラムなので面白くありません。 もうちょっと凝ったサンプルを作ってみましょう。
(現在実験中)
愚痴ばかりいっていても仕方がないの試しにWinGLを使ってみましょう。 とはいっても、簡単にはいきませんね。ライブラリを変換しなければならないし、 ヘッダファイルも適当に直さないといけない。でも、これらが使えるようになると かなり嬉しいので、ちょっと頑張ってみようかな。 (現在実験中)