MinGW-w64 をインストールする方法です。
MinGW-w64
GCC (じーしーしー) は、多くの言語に対応したコンパイラです。コンパイラは、記述したソースコードをコンパイルして実行可能ファイルを作成する場合などに使用します。
MinGW (みん じー だぶりゅ) は、Windows 上で GCC を使用できるようにしたもので 32 bit 環境で動作します。MinGW から派生した MinGW-w64 は、 64 bit 環境で動作します。
本記事では、 Windows 上で GCC を使用する方法として MinGW-w64 を使用する例を記載します。なお、それ以外の方法としては、 WSL 、Visual Studio 、Visual Studio Code を使用する方法などがあります。
ダウンロード
以下よりダウンロードします:
※リンク先は最新バージョンが表示されますので、本記事とバージョンが異なる場合は、適宜お読み替えください
この例では「x86_64-13.2.0-release-win32-seh-msvcrt-rt_v11-rev0.7z」をクリックしてダウンロードしました。ダウンロードが完了したら[フォルダーに表示]をクリックしてファイルがダウンロードされたフォルダを開きます。
展開
ダウンロードしたファイルを[右クリック]して[すべて展開]をクリックします。
「展開先の選択とファイルの展開」が表示されたら[展開]をクリックします。
※展開には時間がかかることがあります
(参考) 現在の Windows 11 は、ZIP 形式以外の圧縮ファイルの展開に対応していますので、今回ダウンロードした 7z 形式の圧縮ファイルの展開も Windows 11 の標準機能で展開できます。旧バージョンの Windows 環境や展開がうまくいかない時は、圧縮・解凍に対応したソフトウェアを使用して展開します:
フォルダの移動
展開が完了して表示された「mingw64」をクリックして選択し、[切り取り]アイコンをクリック、さらに[↑]アイコンをクリックして場所を移動します。
移動したら[貼り付け]アイコンをクリックすると、「mingw64」フォルダが移動します。
※本記事の手順をすでに実行している場合やバージョンアップの場合は、ファイルの上書き確認が表示されることがありますので、上書きを選択します (バックアップをとってから操作されることを推奨します)
動作確認
バージョン確認
何もないところで[右クリック]、[ターミナルで開く]をクリックしてターミナルを開き、次のコマンドを実行して GCC のバージョンを表示させることで動作確認を行います:
gcc -v
実行例:
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows
PS C:\Users\Owner\Downloads> .\mingw64\bin\gcc -v
Using built-in specs.
COLLECT_GCC=C:\Users\Owner\Downloads\mingw64\bin\gcc.exe
COLLECT_LTO_WRAPPER=C:/Users/Owner/Downloads/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/13.2.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-13.2.0/configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64 --with-sysroot=/c/buildroot/x86_64-1320-win32-seh-msvcrt-rt_v11-rev1/mingw64 --enable-host-shared --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=win32 --enable-libstdcxx-threads=yes --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --enable-libstdcxx-filesystem-ts=yes --disable-libssp --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona --with-tune=core2 --with-libiconv --with-system-zlib --with-gmp=/c/buildroot/prerequisites/x86_64-w64-mingw32-static --with-mpfr=/c/buildroot/prerequisites/x86_64-w64-mingw32-static --with-mpc=/c/buildroot/prerequisites/x86_64-w64-mingw32-static --with-isl=/c/buildroot/prerequisites/x86_64-w64-mingw32-static --with-pkgversion='x86_64-win32-seh-rev1, Built by MinGW-Builds project' --with-bugurl=https://github.com/niXman/mingw-builds CFLAGS='-O2 -pipe -fno-ident -I/c/buildroot/x86_64-1320-win32-seh-msvcrt-rt_v11-rev1/mingw64/opt/include -I/c/buildroot/prerequisites/x86_64-zlib-static/include -I/c/buildroot/prerequisites/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/buildroot/x86_64-1320-win32-seh-msvcrt-rt_v11-rev1/mingw64/opt/include -I/c/buildroot/prerequisites/x86_64-zlib-static/include -I/c/buildroot/prerequisites/x86_64-w64-mingw32-static/include' CPPFLAGS=' -I/c/buildroot/x86_64-1320-win32-seh-msvcrt-rt_v11-rev1/mingw64/opt/include -I/c/buildroot/prerequisites/x86_64-zlib-static/include -I/c/buildroot/prerequisites/x86_64-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/buildroot/x86_64-1320-win32-seh-msvcrt-rt_v11-rev1/mingw64/opt/lib -L/c/buildroot/prerequisites/x86_64-zlib-static/lib -L/c/buildroot/prerequisites/x86_64-w64-mingw32-static/lib ' LD_FOR_TARGET=/c/buildroot/x86_64-1320-win32-seh-msvcrt-rt_v11-rev1/mingw64/bin/ld.exe --with-boot-ldflags=' -Wl,--disable-dynamicbase -static-libstdc++ -static-libgcc'
Thread model: win32
Supported LTO compression algorithms: zlib
gcc version 13.2.0 (x86_64-win32-seh-rev1, Built by MinGW-Builds project)
実行が成功してバージョン情報が表示されたところ。
コンパイル
ダウンロード フォルダの何もないところを[右クリック]、[新規作成]から[テキスト ドキュメント]をクリックします。
テキスト ファイルを開いて次の内容をコピー アンド ペーストし、ファイルの名前を「test.cpp」として保存します:
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
※うまくいかない時は「test.cpp.txt」となっていないか確認します
次のコマンドを実行してコンパイルします:
gcc -o test.exe test.cpp -static -lstdc++
正常にコンパイルができたら、実行ファイルを実行します:
test.exe
実行例:
PS C:\Users\Owner\Downloads> .\test.exe
Hello, World!
コンパイルした実行ファイルが実行され「Hello, World!」が表示されました。
後始末
ダウンロードしたファイル「x86_64-13.2.0-release-win32-seh-msvcrt-rt_v11-rev1.7z」および展開してできたフォルダ「x86_64-13.2.0-release-win32-seh-msvcrt-rt_v11-rev1」は削除できます。
※展開してできたフォルダ「x86_64-13.2.0-release-win32-seh-msvcrt-rt_v11-rev1」内の「mingw64」フォルダ以下が重要ですが、本記事の手順で操作した場合、これらのファイルやフォルダは移動済みのため、このフォルダは空のフォルダとなっており、削除できます
PATH を設定する
動作確認までの手順では、gcc を実行する都度ダウンロード フォルダに移動してターミナルを開く必要があります (またはターミナルを開き、コマンドを使用してカレント ディレクトリを移動する)。 PATH (ぱす) を設定すると、どこでターミナルを開いても gcc が実行できるようになります。
(注意) PATH の設定操作を誤るとシステムが正しく動作しなくなる可能性がありますので、意味を理解し慎重に操作を行ってください。よくわからない場合は、操作しないことを推奨します。PATH の設定を行うと利便性は高まりますが、PATH の設定をしなければ動作しないということはありません。
ダウンロード フォルダを開き、さらに「mingw64」をダブルクリックするか[右クリック]して[開く]をクリックします。
[bin]フォルダを[右クリック]して[パスのコピー]をクリックします。
[スタート]をクリックして[設定]をクリックします。
[システム]をクリックして[バージョン情報]をクリックします。
[システムの詳細設定]をクリックします。
[環境変数]をクリックします。
環境変数 PATH に設定を行いますが、この設定は「ユーザーの環境変数」と「システムの環境変数」の2つがありますので、設定したい方の[PATH]をクリックして選択し、[編集]をクリックします。
システムの環境変数はシステムを利用するすべてのユーザーに影響しますので、この例では、ユーザーの環境変数に値を設定します。いずれの設定手順も基本的に同じです。
[新規]をクリックすると一覧に入力欄が表示されますので[右クリック]して[貼り付け]をクリック、 (するとコピーしておいたパスが貼り付けられるので、確認して) [OK]をクリックします。
(参考) 本記事が設定するパスの例:
"C:\Users\Owner\Downloads\mingw64\bin"
※ユーザ名は適宜お読み替えください
設定前:
C:\Users\Owner>gcc -v
'gcc' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
gcc コマンドを実行しても gcc が見つからないエラーが表示されます。
設定後:
C:\Users\Owner>gcc -v
:
:
Thread model: win32
Supported LTO compression algorithms: zlib
gcc version 13.2.0 (x86_64-win32-seh-rev1, Built by MinGW-Builds project)
gcc コマンドを実行すると gcc のバージョン情報が表示されます。
※設定を行ったらコマンド プロンプト等は開き直して動作を確認します
エラー例
コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません
PS C:\Users\Owner\Downloads> .\mingw64\bin\gcc -v
.\mingw64\bin\gcc : 用語 '.\mingw64\bin\gcc' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプ
ログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパス
が正しいことを確認してから、再試行してください。
発生場所 行:1 文字:1
+ .\mingw64\bin\gcc -v
+ ~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (.\mingw64\bin\gcc:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
「コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません」と表示された場合は、実行しようとしている gcc が見つからない状態です。
本記事記載の操作手順のとおりに作業しているかをご確認ください。それでも解決できない場合は「PATH」を設定してから動作確認を行ってみてください。
libstdc++-6.dll が見つからないため、コードの実行を続行できません
「libstdc++-6.dll が見つからないため、コードの実行を続行できません。プログラムを再インストールすると、この問題が解決する可能性があります。」と表示された場合は、実行ファイルの実行時に「libstdc++-6.dll」が見つからない状態です。
libstdc++-6.dll は MinGW の C++ ランタイム ライブラリです。実行可能ファイルが参照する場所に配置する、PATH に含める、コンパイル時に含める、などの解決方法があります。
PATH に含める場合は、「PATH を設定する」の項をご参照ください。コンパイル時に含める場合は、次のオプションにより静的リンクします:
-static -lstdc++
関連
Visual Studio を使用して開発するには、次のサポート記事をご参照ください:
Visual Studio Code を使用して開発するには、次のサポート記事をご参照ください:
参考文献等
- MinGW – Wikipedia
https://ja.wikipedia.org/wiki/MinGW - Mingw-w64 – Wikipedia
https://ja.wikipedia.org/wiki/Mingw-w64 - MinGW-w64
https://www.mingw-w64.org/ - GNUコンパイラコレクション – Wikipedia
https://ja.wikipedia.org/wiki/GNU%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3
注意
- 本操作例は、Windows 11 に MinGW-w64 をインストールするものです
- 記事の都合上 gcc を使用していますが、多くの場合 g++ を使用します
スポンサードリンク