MinGWのインストール

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

[2019.5] 以下で紹介している MSYS (バージョン1) + MinGW.org は廃れています。MSYS2 + Mingw-w64 を使いましょう。おすすめWindowsアプリ (開発ツール)

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

(2008.8.29更新。)

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

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 のWebサイトは次になります。

Note.

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

SourceForge.net: TDM's GCC/MinGW32 Builds
MinGW 用に調整した、新しいgccコンパイラのバイナリ。

[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を選ぶと、次の組合せがインストールされます。

  • mingw-runtime-3.14
  • w32api-3.11
  • binutils-2.17.50-20060824-1
  • gcc 3.4.5-20060117-1
  • mingw32-make-3.81-2

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++以外の開発言語でプログラムを書く場合は、次を参照してください。