MinGW とは
MinGW とは Minimalist GNU for Windows の略称で、Window上でネイティブに動く無償のソフトウェア開発環境の事を指し、GCC, the GNU Compiler Colection を Windows 上で動かす為の必用最低限の仕組みです。「ミン ジー ダブリュ (min-gee-double-you)」または「ミングゥ (ming-wuh) 」「ミングー」と読む様です。私はミングーと呼んでいます。x86 Windows ネイティブアプリの開発にも使えますし、組み込み開発でx86以外の各種マイコン用C言語のクロス コンパイラにも使え、学生さんの各種コンピュータ言語の学習 (Pascal、C、C++、Fortran、Ada 等) にも適しています。
かつては Windows 上でマイコン用の GCC クロス・コンパイラ開発環境と言えば、旧 Cygnus Solutions 社 (現 RedHat) が開発した Cygwin でしたが、生成されたバイナリを動かすには cygwin1.dll というランタイム ライブラリが必要で、システム全体の規模も大きくてインストールが大変でした。今は主流が MinGW に移って居ます。
MinGW のインストーラーにより自動で構築されるパッケージの中には、MinGW そのものと、MSYS という UNIX ライク開発環境の、2つ似て非なるシステムが別々に含まれています。この2つはインストールされるディレクトリも異なりますし、MinGW でコンパイルしたソフトは Windows 上で直接実行可能な事に対し、MSYS でコンパイルしたソフトは実行時に専用のランタイム・ライブラリが必要という点が異なります。MinGW が Windows 上で直接ネイティブに動作するソフトであるのに対し、MSYS は MinGW を使用する為の環境となっています。尚、UNIX の一部の基本的なコマンド群は、どちらにも含まれています。
MinGW/MSYS の後継として、MinGW-w64/MSYS2という物も有りますが、MinGW/MSYS の開発が必ずしも停止した訳では無い様で、2021年現在でもサイトはアップデートされており、最新版のツール・チェーンがメンテナンスされています。また、MSYS2 はパッケージ毎に最新版に更新するローリングリリース モデルを採用しており、特定の安定バージョンに留めて置くのが難しい様です。
逆に、MinGW/MSYS では、学生さん御用達の GNU Pascal Compiler が動作する GCC, the GNU Compiler Collection のバージョン3 でのビルドも可能で、MinGW 用のバイナリも公式サイトで公開されています。
現在、正式なサーバーの所在は www.mingw.org/ から 次の OSDN のサイトに移りました。このOSDNのサイトには、GCC や GDB (The GNU Project Debugger) の最新バージョンが存在します。それに伴い、www.mingw.org のサイトは閉鎖された様です。
尚、一部の有志による User Contributed なファイル群は、次の SourceForge のサイトにもソースコードやバイナリが在ります。
☆ MinGW/MSYS のメリット
- 無償
- GNU コンパイラ・コレクション (GCC) のツールチェーンを利用可能
- 2020年時点で、最新の GCC バージョン9が提供されている
- Windows から直接起動可能なネイティブ・ソフトを開発可能
- UNIX ライクな開発環境が動作し、標準ライブラリも提供されている
- 最初のシェル (bash) の起動が高速
- インストール・パッケージがコンパクト
- クロス・コンパイラ環境を容易に構築可能 (Cygwin の代替に使える)
- Tk の contribute パッケージが提供されており、GUI ソフトも開発可能
(Insight という GDBtk な高級言語のソースコード GUI デバッガを利用可能) - MSVC (Microsoft Visual C) のリンク用ライブラリも提供されている
- Windows 上のフリーソフト開発環境としての地位を確立している
- ステーブルな旧版を継続的に利用可能
GNU Pascal 等の作成に必要なGCC バージョン3が提供されている
(MSYS2 はローリングリリースで勝手にバージョン変更される) - ECLIPSE 等の IDE (統合開発環境) への組み合みが可能
- 各社 ICE (インサーキット・エミュレーター) でもソース・デバック可能
デバッガー用 Dwarf 形式のバージョン2~4をサポート - インストールが簡単 (Cygwin や WSL や仮想ソフト程の手間が要らない)
- 端末エミュレーターとして日本語表示も可能で秀逸な mintty が同梱されている
(元々は Cygwin 用として開発された VT100 互換エミュレーターからの移植)
☆ MinGW/MSYS のデメリット
- POSIX 準拠ではないので、ビルド出来ないソフトも有る
( Cygwin はPOSIX 準拠 ) - 必ずしも全てのUNIX系ライブラリが揃っている訳では無い
- パッケージ内に MinGW と MSYS という2種類のランタイムが存在する
MSYS でビルドされたソフトには、専用のランタイムが必要となる - MinGW と MSYS のランタイムを混載ビルドしない様に注意が必要
- 自動インストールでは32ビット版となり、64ビット版には一手間必用
☆次の記事では、【MinGW/MSYS (1.0) の64ビット化を見据えた Windows10 へのインストール方法】を紹介しています。