みねっちょのマイコン関係ブログ

フリーソフトや組込開発関係の情報を公開出来たらいいなと

無償な Windows 上のGNUソフト (GCC) 開発環境 MinGW とは

MinGW 関係の目次へ戻る

MinGW とは

MinGW とは Minimalist GNU for Windows の略称で、Window上でネイティブに動く無償のソフトウェア開発環境の事を指し、GCC, the GNU Compiler ColectionWindows 上で動かす仕組みです。Windows 上で GCC を動かす為の必要最低限の仕組みです。「ミン ジー ダブリュ (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 でコンパイルしたソフトは実行時に専用のランタイム・ライブラリが必要という点が異なります。MinGWWindows 上で直接ネイティブに動作するソフトであるのに対し、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のサイトには、GCCGDB (The GNU Project Debugger) の最新バージョンが存在します。それに伴い、www.mingw.org のサイトは閉鎖された様です。

osdn.net

尚、一部の有志による User Contributed なファイル群は、次の SourceForge のサイトにもソースコードやバイナリが在ります。 

sourceforge.net

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 準拠ではないので、ビルド出来ないソフトも有る
     ( CygwinPOSIX 準拠 )
  • 必ずしも全てのUNIX系ライブラリが揃っている訳では無い
  • パッケージ内に MinGW と MSYS  という2種類のランタイムが存在する
    MSYS でビルドされたソフトには、専用のランタイムが必要となる
  • MinGW と MSYS のランタイムを混載ビルドしない様に注意が必要
  • 自動インストールでは32ビット版となり、64ビット版には一手間必用

☆次の記事では、MinGW/MSYSの今風なインストール方法 を紹介しています。