(2008.9.9) いろいろなページに分散していたのをまとめました。
(2008.8.29更新。)
Windows上で動くフリー (自由) のC/C++開発環境には、CygwinとMinGWがあります。
Visual Studio 2008 Express という選択肢もあります (無償)。フリー (自由) ではありませんが、これも悪くありません。
Visual Studio 2008 Express にはMFC も ATL も含まれないので、GUIアプリを書くときは、Windows APIを直接叩くか、別途GUIライブラリを用意することになります。MinGWも別にGUIライブラリが必要です。
CygwinはWindows上でUNIX環境を再現します。C/C++コンパイラだけでなく、各種ライブラリから X、gtk+まで揃っています。UNIX用のソフトウェアをWindowsで動かしたいときに重宝します。X用のソフトウェアもだいたい動きます。
Cygwin環境でコンパイルすると、cygwin1.dll (POSIX Emulation DLL) が必ずリンクされ、このライブラリのライセンスが (LGPL ではなく) GPLなので、プログラムが自動的にGPLになります。
自分で使う分には何の問題もありませんが、それ以外のライセンスのソフトウェアのバイナリを他人に配布しようとするときは、Cygwinは使えません。
MinGWではWindowsネイティブで動くバイナリができます。配布に制限もありません。
MinGWにはUNIXエミュレーションは何もありませんので、UNIX用のソフトウェアをコンパイルするときは、例えば、ソケットはWinSockで書き直す、などしないといけません。
以下では、MinGWをインストールしてみます。
MinGWのサイトは、
提供されているファイルがずいぶんゴチャゴチャしていますが、2008.8現在、インストーラのバージョンは5.1.4です。
このほか、MinGW本家以外でも、パッケージやインストーラを提供しているところがあります。
まずは、MinGW-5.1.4.exe をダウンロードして実行します。
Previous / Current / Candidate の選択が出ます。どのバージョンがインストールされるかは、インストーラと同じフォルダにできるmingw.ini ファイルを見れば分かります。Currentでいいようです。
2008.8現在、Currentを選ぶと、次の組合せがインストールされます。
![]() | Note.
(2008.9.3) インストーラがbinutilsをダウンロードできません。サーバから当該バージョンが削除されたようです。mingw.iniファイルを次のように書き換えてしのぎます。
binutils=binutils-2.18.50-20080109-2.tar.gz |
インストール先のディレクトリ名に空白文字が含まれると問題が発生する元になるので、インストール先は、c:¥MinGW などにします。
個別のパッケージで新しいものが提供されている場合が多いので、パッケージの選択では Minimal を選ぶのがよさそうです。
gcc 3.4.5 (plain Cのみ) がインストールされます。C++などは導入されません。
次は、個別のパッケージです。
個別のパッケージは、ファイルをダウンロードしてきて、mingwのトップディレクトリで解凍していくだけです。
bashやUNIX的なコマンド、makeコマンドなどはmsysCORE に含まれています。これは必須です。
| Package | Filename |
|---|---|
| MSYS Base System | msysCORE-1.0.11-20080826.tar.gz |
| MSYS Supplementary Tools | autoconf, automakeなど。 |
MinGWのトップディレクトリの msys.bat を実行すればターミナル (rxvt) が開きます。
gccはTDM 版のバイナリをインストールしてみます。
インストーラもありますが、試したときには、ファイルがサーバからダウンロードできなかったため、うまくインストールできませんでした。
個別のパッケージを取ってきます。こちらも単にトップディレクトリでアーカイブを展開するだけです。簡単。
GUIアプリを作ろうと思うと、WindowsのAPIを直接叩くのは不毛です。何かGUIツールキットを用意します。
C/C++以外の開発言語でプログラムを書く場合は、
Netsphere Laboratories http://www.nslabs.jp/
[PR]