(2008.9.9) いろいろなページに分散していたのをまとめました。
[2019.5] 以下で紹介している MSYS (バージョン1) + MinGW.org は廃れています。MSYS2 + Mingw-w64 を使いましょう。おすすめWindowsアプリ (開発ツール)
(2008.8.29更新。)
Windows上で動くフリー (自由) のC/C++開発環境には、Cygwinと MinGW があります。
このほか, Microsoft Visual Studio Express 2012 という選択肢もあります (無償)。フリー (自由) ではありませんが、これも悪くありません。
Visual Studio Express 2012 for Windows Desktop にC++が含まれます。が, Express Edition には MFC も ATL も含まれないので、GUIアプリを書くときは、Windows APIを直接叩くか、別途GUIライブラリを用意することになります。
CygwinはWindows上でUNIX環境を再現します。C/C++コンパイラだけでなく、各種ライブラリから X Window、gtk+まで揃っています。UNIX用のソフトウェアをWindowsで動かしたいときに重宝します。X用のソフトウェアもだいたい動きます。
Cygwin環境でコンパイルすると, cygwin1.dll
(POSIX Emulation DLL) が必ずリンクされ、このライブラリのライセンスが (LGPL ではなく) GPLなので、プログラムが自動的にGPLになります。
自分で使う分には何の問題もありませんが、それ以外のライセンスのソフトウェアのバイナリを他人に配布しようとするときは、Cygwinは使えません。
いっぽう, MinGWではWindowsネイティブで動くバイナリができます。配布に制限もありません。
MinGWにはUNIXエミュレーションは何もありませんので、UNIX用のソフトウェアをコンパイルするときは、例えば、ソケットはWinSockで書き直す、などしないといけません。
以下では、MinGWをインストールしてみます。
MinGW のWebサイトは次になります。
このほか、MinGW本家以外でも、パッケージやインストーラを提供しているところがあります。
[2019.5] 2015年で更新が止まっています。すでに終了したとみられます。
[2021.5] 2020年3月に TDM-GCC 9.2.0 がリリースされています。復活したようです。MinGW-w64 ベースと MinGW.org ベースがあります。
GUIインストーラは次から入手できます。
[2019.5] 最新は2013年で止まっています。こちらではなく, MSYS2 を使いましょう。
mingw-get-setup.exe
をダウンロードして, 実行します。
Previous / Current / Candidate の選択が出ます。どのバージョンがインストールされるかは、インストーラと同じフォルダにできるmingw.ini ファイルを見れば分かります。Currentでいいようです。
2008.8現在、Currentを選ぶと、次の組合せがインストールされます。
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++以外の開発言語でプログラムを書く場合は、次を参照してください。