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

組込開発系フリーソフトやハードの情報発信ブログ

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

サイト内 Google 検索:



 


MinGW とは

MinGW とは Minimalist GNU for Windows の略称で、Window上でネイティブに動く無償のソフトウェア開発環境の事を指し、GCC, the GNU Compiler ColectionWindows 上で動かす為の必用最低限の仕組みです。「ミン ジー ダブリュ (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 (1.0) の64ビット化を見据えた Windows10 へのインストール方法】を紹介しています。


 


【MinGW 関係の目次へ戻る】