MinGW(ミン・ジー・ダブリュー、Minimalist GNU for Windows)はGNUツールチェーンのWindows移植版である。MinGWはWindows APIのためのヘッダファイルを含んでおり、フリーのコンパイラであるGCCを、Windowsアプリケーションの開発のために利用できる。MinGWプロジェクトでは、32bit環境向けの2つの主要なパッケージを開発、配布している。Windows環境に移植されたGCCは、コマンドラインから使用することも、IDEへ統合することもできる。もう1つのMSYS ("minimal system") は軽量のUNIX風シェル環境であり、端末エミュレータのrxvtと、開発ツールのautoconfを実行可能にするためのPOSIXコマンド群とが含まれている。この2つのパッケージは、Cygwinからフォークして誕生した。CygwinではWindowsの機能性を犠牲にすることで、より機能的なUnix風環境を提供している。なお、どちらのパッケージもフリーソフトウェアで、Win32APIを利用するためのヘッダファイルはパブリックドメインで提供されており、GNUツールの移植版はGPLである。MinGWの個々のGNUツール及びMSYSは、MinGWの公式サイトより入手可能である。MinGWの名称は"Minimalist GNU for Windows"(Windowsのための最小限度のGNUの意)を表す。"Win32" APIの為のヘッダーを提供するので"Mingw32"とも呼ばれる。"MinGW"の規範となる発音は未だ決定されていないが、一般的には、"ming wee", "min gee double-u", "ming double-u" または "min gnu" などのように発音されている。MinGWとMSYSを両方合わせても小さく、それ自身で完結可能な環境であり、リムーバブル・メディアから使用することが可能である。その際に、コンピュータ上のレジストリやファイルに影響を与えない。一方、Cygwinはより多くの機能を提供するために、インストールとその後の管理が複雑である。さらに、MinGWはLinux上など異なるOSでのクロスコンパイルにも対応している。このため、MSYSがインストールされたWindowsを利用せずに、Windows用のアプリケーションを開発できる。MinGWはCygwin 1.3.3からフォークした。Cygwin、MinGWいずれもUnixソフトウェアのWindowsへの移植に使用されるが、異なる方針を採っている。CygwinはWindows上に、Linuxや他のUNIXシステムに見られるような、完全なPOSIX層を提供することを目標にしており、互換性のために必要であれば性能も犠牲にしている。一方でMinGWはフリーのコンパイラと各種ツールのみを提供し、性能を重視している。アプリケーション移植の観点で見ると、MinGWはPOSIX APIを提供していない。このため、Cygwinでコンパイル可能だがMinGWでは不可能なUnixアプリケーションが存在する。具体的には、特定のPOSIXの機能を要求する、又は、POSIX環境中で実行されることを前提とするアプリケーションが当てはまる。この問題を回避しMinGWで動かすためには、cygwin1.dll内の関数を直接利用する方法または、、SDL、wxWidgets、Qt、GTK+あるいはgnulibのようなプラットフォーム非依存のライブラリを使用してアプリケーションを作成する必要がある。そのほかの移植時の注意点として、MinGWでは、ネットワークプログラミングの read/write を、recv/send に置き換える必要がある。これは、Windowsでのsocketの実装がWinsockであり、POSIXと異なるためである。このため、単なるツールチェーンとして提供されているMinGWでは、この修正は今後とも必要である。この違いは、MinGWとcygwinで、libcライブラリ、標準Cライブラリをはじめとして、異なるライブラリを使用しているためである。MinGWでは、Microsoftから直接提供されるライブラリmsvcrt.dllを用いている。しかし、Cygwinでは、POSIX互換の為にDLL (cygwin1.dll) を独自に導入して解決している。Cygwinでは、独自ライブラリを用いているため、ランタイムライブラリのライセンスによる制限を受ける。なお、MinGWでも、MSYSのライブラリ(msys-1.0.dllやmsys-z.dll)をリンクしている場合、これらのランタイムライブラリライセンスによる制限 (GPL) を受ける。なお、CygwinでMinGW用プログラムの開発が可能であった。CygwinのGCCは gcc-3 まではオプション "-mno-cygwin" を渡すと、MinGWのヘッダファイルとランタイムライブラリを用いてバイナリが作成された。gcc-4 からは現在のところこのオプションは削除されている。ライブラリの依存関係は、"objdump -p ファイル名" で見ることができる。MinGWのバイナリは、Linux上でも開発することができる。Linuxの場合、Wineを使ってテストを行うことが簡便である。なお、RPMファイルは、次のページから取得することができる。なお、Fedoraでは、以下のSIGが立ち上がっている。クロスコンパイル環境でドライバを作るための注意点などは、以下の記事も参考になる。MinGWプロジェクトでは64bit環境向けのコンパイラセットは提供されていない。64bit向け開発環境は、mingw.org から2007年にフォークしたMingw-w64と、MinGWプロジェクトのMSYSを組み合わせれば構築できる。MinGWの開発環境としては、MSYSが標準であるが、そのほかに、EclipseやDOSプロンプトで開発することもできる。Intel Threading Building Blocksも、将来的には、MinGWでコンパイルできる見込みである。
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。