mingwとは?初心者でも分かる基礎ガイド:WindowsでGCCを使えるmingw入門共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
mingwとは?初心者でも分かる基礎ガイド:WindowsでGCCを使えるmingw入門共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


mingwとは?

「mingw」は「Minimalist GNU for Windows」の略で、Windows上でGNUのツールチェーンを使うための環境を提供します。主に C/C++ のコンパイルやリンクに必要な GCC などのツールを、Unix系の環境を作らずに Windows 上で使える形にまとめたものです。Unixライクな開発スタイルをWindowsで体験したい人に最適な選択肢です。

なぜ mingw が必要なのか

Windows だけで開発を進めると、オープンソースの多くが GNUのツールチェーン を前提に動くことが多く、移植性の高いビルド方法を学ぶには gcc や make などのツールを使う練習が役立ちます。mingw はそれらを Windows に持ち込み 素早く環境を整える役割を果たします。

mingwと他の選択肢の違い

mingw 自体は最小限のコンパイラ群を提供するだけで、Unix風のシェルや追加ツールは別途用意します。対してMSYS2 や Cygwin は Unix風の環境を同梱するため、初心者には少し敷居が高いことがあります。目的が「本当に GNU 風の開発を体験したい」なら mingw-w64 と組み合わせるのがおすすめです。

インストールと基本の使い方

信頼できる配布元から mingw-w64 のインストーラーを入手します。64bit と32bit のどちらを選ぶかは OS に合わせて決めます。インストール後は PATH 環境変数 にバイナリディレクトリを追加しましょう。これでコマンドプロンプトから gccg++ を呼び出せます。

実際の手順の流れは以下のイメージです。まずは簡単なファイル hello.c を作成し gcc hello.c -o hello.exe のようにコンパイルします。ビルドが成功すればhello.exeを実行して結果を確かめられます。

インストール時のコツと注意点

PATH の設定ミスや64bitと32bitの選択で混乱することがあります。mingw-w64 には 64bit と 32bit の両方が用意されているので、OS と用途に合わせて選択します。初学者には64bit版から始めると良い場合が多いです。

表で見る比較

項目mingwMSYS2/Cygwin用途
対象プラットフォームWindows の GCC 環境Unix風環境を含む開発スタイルの違い
難易度の目安低〜中中〜高用途に応じて選択
代表的な使い方C/C++ のコンパイルUnix風ツールの利用環境構築の性質

まとめと次のステップ

mingw は Windows 上で C/C++ の学習と開発を始める第一歩として有力です。最小限の設計思想で GNU の道具を Windows で使えるようにします。将来的に依存関係を増やしたい場合はMSYS2 などと組み合わせると、より快適に開発を進められます。


mingwの関連サジェスト解説

mingw-w64 とは
mingw-w64 とは、Windows 上で動く GNU ツールチェーンのことです。ここでいうツールチェーンとは、CやC++などのプログラムを作るときに使う道具の集まりです。具体的には GCC(コンパイラ)、リンカ、アセンブラ、そして Windows 向けのヘッダとライブラリが入っています。mingw-w64 は MinGW の派生で、古い MinGW にはなかった 64 bit の対応が追加されています。つまり 32bit だけでなく 64bit の Windows アプリも作れるようになっています。使い道は、IDE を使わずに自分のパソコンで Windows アプリを作りたいときに便利です。 Windows API に直接アクセスでき、必要な DLL を同梱したり静的にリンクしたりして実行ファイルを作れます。どう手に入れるか。主な入手先は二つです。まず MSYS2 という環境を使う方法。pacman というコマンドで 'mingw-w64-x86_64-toolchain' などのパッケージを入れます。インストール後は /mingw64/bin に gcc や g++ などが置かれ、コマンドプロンプトから 'gcc --version' と打てばインストールが確認できます。もう一つは公式の配布を直接ダウンロードして使う方法です。使い方の例。C のファイル hello.c があるとします。端末で 'gcc hello.c -o hello.exe' と打てばネイティブな Windows 実行ファイル hello.exe ができます。クロスコンパイルをする場合は 'x86_64-w64-mingw32-gcc' のようなプレフィックスを使います。注意点。ライブラリの依存関係には注意が必要です。DLL を同梱するか、静的リンクを選ぶかで配布方法が変わります。また同じ mingw-w64 でもビルドオプション(CRT のバージョンなど)で挙動が変わることがあります。
mingw installer とは
mingw installer とは、Windows上で動くGCC系のツール群をパッケージとして提供するインストーラーのことです。MinGW の一部として、CやC++のコンパイラやリンクツール、make などを一つの場所から手に入れられる仕組みを指します。インストールを始めると、必要な部品を自分で選ぶ画面が出て、gcc や g++ などの実行ファイルが含まれるパッケージを選択して導入します。インストール後は PATH という環境変数に bin フォルダの場所を登録しておくと、コマンドプロンプトから gcc --version などと打つだけで動くようになります。初心者には難しく見えるかもしれませんが、画面の指示に従い、コアのコンパイラと少数の補助ツールを選ぶだけで十分です。注意として、mingw installer は古い方法で現在は MinGW-w64 や MSYS2 のような新しい選択肢が主流になっています。これらは 64bit 対応やシェル環境の統合、パッケージ管理の利便性が向上しており、Windows 上での開発をよりスムーズにします。もし新規に始める場合はこれらの選択肢を検討するのも良いでしょう。公式サイトの導入手順を読み、まずは簡単な C のプログラムを作ってコンパイルしてみることをおすすめします。
llvm-mingw とは
llvm-mingw とは、LLVM の Clang コンパイラと MinGW-w64 のランタイムを組み合わせて、Windows 向けのツールチェーンを提供するオープンソースのプロジェクトです。通常の Windows アプリ作成には MSVC などが使われますが、llvm-mingw を使うと Linux や macOS など別のOS上で Windows 用の実行ファイルを作ることができます。大きな特徴は、GCC 代替として Clang を使える点と、LLVM の静的解析や Sanitizer などのツール群を同時に利用できる点です。 llvm-mingw は MinGW-w64 のランタイムと互換性を持ち、Windows の API を呼ぶコードを作成するのに必要なヘッダやライブラリも手に入ります。 従来の MinGW-w64 は GCC ベースですが、llvm-mingw は LLVM 系のコンパイラを用いることで、クロスコンパイルの経験を持つ開発者にとって新しい選択肢になります。使い方は比較的シンプルです。公式サイトや GitHub から prebuilt toolchain をダウンロードし、解凍して bin ディレクトリを PATH に追加します。次に Windows 向けの実行ファイルを作るには、ターゲットトリプルを指定して clang を使います。例としては、クロスコンパイル時に x86_64-windows-gnu を指定して hello.c をコンパイルする方法があります。実行ファイルを作るときは、必要な WinAPI ライブラリを MinGW-w64 のライブラリとリンクします。ビルドの設定は CMake を使う場合もあり、CMAKE_TOOLCHAIN_FILE に llvm-mingw のツールチェーンファイルを指定すると、他のプラットフォーム間でも同じ設定でビルドできます。なお、環境によってはパスの設定やライブラリの場所を事前に確認する必要があります。これにより、Windows 向けアプリを GCC ではなく Clang ベースで開発したい人にとって有力な選択肢となります。

mingwの同意語

MinGW
Minimalist GNU for Windows の略称。Windows環境でGNUツール(GCC・GNU make など)を動かすための最小限のツールチェーンを提供するオープンソースプロジェクト。
Minimalist GNU for Windows
MinGW の正式名称。Windows向けにGNUツールを動かすための最小限の開発環境を提供するプロジェクト。
MinGW-w64
MinGWの派生版で、32ビットと64ビットの両方のWindows向けツールチェーンを提供する拡張版。64-bit対応が特徴。
GNU for Windows
Windows上でGNUツールを使えるようにするという意味を表す表現。公式名称ではなく、概念的な説明として使われることが多い。
GCC for Windows
Windows向けのGNU Compiler Collection(GCC)を指す表現。MinGW系ツールチェーンのコアコンポーネントとして使われることが多い。
Windows用GCCツールチェーン
Windows上でGCCを動かすためのツールチェーン全体を指す表現。MinGW系のツールチェーンを指すときに用いられることがある。
MSYS2
MinGW-w64ベースのツールチェーンとUnix系ツールを統合したWindows向け統合開発環境。MinGWの補助環境として使われることが多い。
GnuWin32
Windows向けのGNUツールセットを提供する別プロジェクト。MinGWとは別系統だが、同じくWindows上でGNUツールを利用するための選択肢の一つ。

mingwの対義語・反対語

MSVC (Microsoft Visual C++)
Windows向けの公式コンパイラ。MinGW の GNU ツールチェーンと対照的にオープンソースではなく、Microsoft のエコシステムに依存します。Windowsアプリ開発で長年の主流ツールです。
ネイティブWindows開発環境
Windows専用の公式ツールチェーンを使い、GNU系ツールを使わずに開発する環境。代表例は Visual Studio と MSVC などで、MinGW のような GNU ツールとの対比で語られることが多いです。
商用閉源ツールチェーン
ライセンスが閉じられた商用ツール群を指す概念。MSVC などが代表例で、オープンソースの GCC/MinGW とは異なるライセンス方針を取ります。
Cygwin
Windows 上で POSIX 互換環境を提供するツール。MinGW が Windows ネイティブ実行を志向するのに対し、Cygwin は POSIX API をエミュレートして動かすアプローチで、対になるイメージを持たれやすいです。
Clang for Windows
LLVM ベースの C/C++ コンパイラ。GCC 系の MinGW と同様に Windows 向けのビルドを行える代替ツールで、実装や挙動が異なる別系統です。

mingwの共起語

GCC
GNU Compiler Collection。MinGWがWindows向けに提供するC/C++などのコンパイラ群の総称。
MinGW-w64
MinGWの派生プロジェクトで、64bitと32bitのWindows向けに対応。GCCとランタイムライブラリを提供するツールチェーン。
MSYS
MSYS。Unix風のシェルと基本ツールをWindows上で提供する環境。MinGWと組み合わせて使われる。
MSYS2
MSYSの発展版で、pacmanを使った現代的なパッケージ管理と更新機能を持つ開発環境。
binutils
GNU binutils。アセンブリ、リンク、オブジェクトファイルの操作などを行うツール群(ld、as、ar など)。
GDB
GNUデバッガー。プログラムの実行を止めて変数を観察したりバグを追跡するデバッグツール。
make
Make。Makefileを基にビルド工程を自動化するツール。
Windows
Windowsオペレーティングシステム。MinGWはこの上でネイティブに実行ファイルを作成するためのツールチェーン。
ツールチェーン
コンパイラ、アセンブラ、リンカ、デバッガなど、ビルドに必要な一連のツールの集合。
PE_COFF
Windowsの実行ファイル形式であるPE/COFF。MinGWで作成する.exeはこの形式で保存される。
mingw-runtime
MinGWが提供するWindows向けのランタイムライブラリ群。
libgcc
GCCのランタイムライブラリのひとつ。異なるプラットフォーム間の互換性を支える。
libstdc++
C++標準ライブラリ。C++の標準機能を提供するライブラリ群。
PATH
環境変数 PATH。MinGWの bin ディレクトリを含めるとコマンドをどこからでも呼べる。
pacman
MSYS2のパッケージ管理システム。ソフトウェアのインストール・更新を行う。
mingw-get
旧来のMinGWのパッケージ管理ツール。新しいMSYS2では代替的に使われることは少ない。
クロスコンパイル
一つのOSで別のOS向けの実行ファイルを作る作業。MinGWはWindows向けのネイティブツールチェーンとして使われる場面が多いが、クロス開発の文脈でも語られる。
C/C++
C言語とC++言語。MinGWはこの二つの言語をWindows向けにコンパイルするための実装を提供する。

mingwの関連用語

MinGW
Windows 向けに最小限の GNU ツールチェーンを提供する C/C++ 用のコンパイラ群。GCC を中心に、ネイティブ Windows 実行ファイルを作成するためのツール群で、Windows API を直接利用できます。
MinGW-w64
MinGW の分岐プロジェクトで、32bit と 64bit の両方の Windows プラットフォームをサポートします。スレッドモデルは win32 または posix、ランタイムは msvcrt または ucrt の組み合わせを選択可能で、現代の Windows 開発に適しています。
MSYS
最小の POSIX 風環境とシェルを提供するツール群。Autotools 系のビルドを Windows 上で実行する際に便利でしたが、現在は用途が限定的になっています。
MSYS2
MSYS の改良版で、pacman というパッケージマネージャを使って最新のツールを管理します。mingw-w64 のツールチェーンを 32/64-bit 向けに提供します。
GCC
GNU Compiler Collection の略。C/C++/Fortran などを Windows で利用する際の中心的なコンパイラです。MinGW 系はこの GCC を Windows 向けにビルドしたものを提供します。
G++
GCC の C++ コンパイラ。C++ のソースを Windows 実行ファイルに変換するために使われます。
Binutils
ld(リンカ)、as(アセンブラ)、ar などのツール群。GCC とともにバイナリの作成・結合・解析を行います。
GDB
GNU Debugger。実行中のプログラムをデバッグするためのツール。MinGW 環境で Windows 実行ファイルをデバッグできます。
Make
ビルド作業を自動化するツール。MinGW では mingw32-make が通例です。
pkg-config
ライブラリの情報を簡単に取得できる補助ツール。コンパイル・リンク時のオプションを自動的に取得します。
CMake
クロスプラットフォーム対応のビルドシステム。MinGW でのビルド設定にも広く使われ、ジェネレータとして『MinGW Makefiles』などが選べます。
Autotools
Autoconf/Automake などのビルドツール群。移植性のあるソフトウェアのビルドを Windows に取り込む際に使われます。
Windows API / WinAPI
Windows のネイティブ機能を提供する API。Windows アプリケーションを作る際には header(windows.h など)とライブラリが必要です。
Windows SDK / Platform SDK
Windows のヘッダとライブラリ、開発用ツールが含まれる開発キット。MinGW で Windows API にアクセスする際のヘッダ・ライブラリの供給元となります。
PE/COFF
Windows の実行可能ファイルや DLL のファイル形式。MinGW で作成されるネイティブ Windows バイナリは通常 PE/COFF 形式です。
MSVCRT
Microsoft Visual C++ ランタイム。旧来の MinGW で使われることがあり、C ランタイムの実装として使われます。
UCRT / Universal C Runtime
Windows 10 以降で推奨される現代的な C ランタイム。MinGW-w64 でも UCRT を選択してビルドすることが可能です。
libstdc++
GCC に含まれる C++ 標準ライブラリ。C++ の標準機能が提供されます。
libgcc
GCC のランタイムライブラリ。例外処理や一部の組み込み機能の実装を提供します。
i686-w64-mingw32
MinGW-w64 の 32bit ターゲット。32-bit Windows 向けのコンパイラ・リンカを指します。
x86_64-w64-mingw32
MinGW-w64 の 64bit ターゲット。64-bit Windows 向けのコンパイラ・リンカを指します。
DLL / .dll
動的リンクライブラリ。実行時に読み込まれ、機能を外部ライブラリとして提供します。
Static libraries / .a
静的ライブラリ。ビルド時にプログラムに組み込まれる形でリンクされます。
windows.h
Windows API の主要ヘッダ。WinAPI を利用する際に必須です。
MSys2 の pacman
MSYS2 が提供するパッケージマネージャ。gcc、binutils、ツールチェーンなどを管理・更新します。
Cross-Compiler
別のプラットフォーム向けにコードをコンパイルするためのコンパイラ。MinGW は Windows 向けのクロスコンパイラとして機能します。
Cross-Compile
ある OS/アーキテクチャ上で別の OS/アーキテクチャ向けのバイナリを作る作業。MinGW は Windows のネイティブビルドに特化しています。
Cygwin
Windows 上で POSIX 互換環境を提供する別プロジェクト。MinGW とは異なり、ネイティブ Windows バイナリを作る場合は便利さが異なります。

mingwのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
16512viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2889viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1183viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1171viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
1047viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
1026viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
1014viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
978viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
872viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
865viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
812viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
811viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
788viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
740viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
713viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
674viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
619viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
612viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
599viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
545viws

新着記事

インターネット・コンピュータの関連記事