MinGWのインストール

(2008.9.9) いろいろなページに分散していたのをまとめました。

WindowsのフリーのC/C++コンパイラ

(2008.8.29更新。)

Windows上で動くフリー (自由) のC/C++開発環境には、CygwinとMinGWがあります。

Note.

このほか, 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のインストール

MinGWのサイトは次になります。

Note.

このほか、MinGW本家以外でも、パッケージやインストーラを提供しているところがあります。

SourceForge.net: TDM's GCC/MinGW32 Builds
MinGW用に調整した、新しいgccコンパイラのバイナリ。2008.8現在、最新のgcc 4.3.2が提供されている。

GUIインストーラは次から入手できます。2014.2月現在, 2013年10月バージョンが最新です。

mingw-get-setup.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 MSYS-1.0.11-20080821-dll.tar.gz
msysCORE-1.0.11-20080826.tar.gz
MSYS Supplementary Tools autoconf, automakeなど。

MinGWのトップディレクトリの msys.bat を実行すればターミナル (rxvt) が開きます。

gccのインストール

gccはTDM 版のバイナリをインストールしてみます。

インストーラもありますが、試したときには、ファイルがサーバからダウンロードできなかったため、うまくインストールできませんでした。

個別のパッケージを取ってきます。こちらも単にトップディレクトリでアーカイブを展開するだけです。簡単。

次のステップ

GUIアプリを作ろうと思うと、WindowsのAPIを直接叩くのは不毛です。何かGUIツールキットを用意します。

wxWidgets
実用wxWidgets. Windowsネイティブなプログラムを作るならこちらがおすすめです。
gtk+
Windowsネイティブなgtk2アプリケーションの開発. UNIX用のソフトを移植する、あるいはUNIXへの移植を前提にするなら、こちらがいいと思います。

C/C++以外の開発言語でプログラムを書く場合は、次を参照してください。