【GCC】WindowsにMSYS2をインストールする

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【GCC】WindowsにMSYS2をインストールする

2025-1-10 | , ,

WindowsにMSYS2をインストールしてGCCを使いたい!

概要

今回の記事では、WindowsにMSYS2をインストールしてGCCを使う手順を掲載する。

過去のバージョンでは、MSYS2をインストールしたらGCCも一緒にインストールされて使える状態になってたような気がしたんだけども、気のせいなのかもしれない。

仕様書

環境

  • MSYS2: x86_64-20241208
  • gcc: 14.2.0

手順書

MSYS2の公式を参考にしつつ、GCCでサンプルをビルドするまでの手順です。

「環境構築編」と「ビルド編」の2部構成です。

環境構築編

公式サイトからインストーラーをダウンロードしてインストールする。

デフォルトでは、C直下にC:\msys64という感じでインストールされる。

MSYS2専用のターミナルであるC:\msys64\msys2.exeを開く。Windows ターミナルでMSYS2を使う方法については後述する。

packmanというパッケージマネージャーを使って、UCRT版のGCCをインストールする。

pacman -S mingw-w64-ucrt-x86_64-gcc

他のパッケージは下記のページで確認できる。

他のコンパイラーをインストールする例。

# CRT版のGCCをインストールする
pacman -S mingw-w64-x86_64-gcc

# clang(UCRT)をインストールする。
pacman -S mingw-w64-x86_64-clang

インストールされたGCCのバージョンを確認する。

# UCRT64環境に切り替える(`C:\msys64\ucrt64.exe`を開いてもよい)
/usr/bin/env MSYSTEM=UCRT64 /usr/bin/bash --login

# UCRT64環境のGCCのバージョンを出力する
gcc --version

下記のような感じで出力されればOKだ!

gcc.exe (Rev2, Built by MSYS2 project) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

ビルド編

MSYS2管理下のユーザーディレクトリーにmain.cを作る。デフォルトでは下記のようなパスにユーザーディレクトリーがある。

C:\msys64\home\<username>\main.c

<username>はWindowsのユーザー名と同じもの。

main.cはこんな感じ。

#include <stdio.h>

int main()
{
    printf("Hello, world!\n");
    return 0;
}

UCRT64環境でmain.cをコンパイルする。

gcc -o main.exe main.c

main.exeが生成されるので実行してみる。

./main.exe

下記のような感じで出力されればOKだ!

Hello, world!

MSYS2をWindowsターミナルで使う

毎度MSYS2用のターミナルを開くのは面倒なので、WindowsターミナルからMSYS2を使えるようにする。

Windowsターミナルの起動して、開かれてるタブの右の下向きの「>」をクリックして、表示されるメニューの中の「設定」をクリックする。Crtl+,のショートカットキーを使ってもよい。

左の「新しいプロファイルを追加します」をクリックして表示される右の「新しいからのプロファイル」をクリックする。

設定項目がいろいろ表示されるんだけども必須なのは「コマンドライン」の項目のみ。残りの設定は分かりやすさ的な。

各項目の値は下記のような感じ。

項目名 備考
名前 MSYS2
コマンドライン %SystemRoot%\System32\cmd.exe /c "set MSYS=winsymlinks:nativestrict&& C:/msys64/usr/bin/bash.exe --login" 必須
アイコン C:\msys64\msys2.ico

項目に値を入力したら「保存」をクリック。

下向きの「>」をクリックして、表示されるメニューの中に「MSYS2」が追加されてるのでこれをクリックする。

MSYS2が表示されればOKだ!

ここからUCRT64環境に移動するには下記のコマンドを実行する。

/usr/bin/env MSYSTEM=UCRT64 /usr/bin/bash --login

これはこれで面倒なので直接UCRT64環境を呼び出すプロファイルも作っておく。

項目名 備考
名前 MSYS2(UCRT64)
コマンドライン %SystemRoot%\System32\cmd.exe /c "set MSYSTEM=UCRT64&& set MSYS=winsymlinks:nativestrict&& C:/msys64/usr/bin/bash.exe --login" 必須
アイコン C:\msys64\ucrt64.ico

項目に値を入力したら「保存」をクリック。

下向きの「>」をクリックして、表示されるメニューの中に「MSYS2(UCRT64)」が追加されてるのでこれをクリックする。

UCRT64が表示されればOKだ!

まとめ(感想文)

パスを通してコマンドプロンプトから直接使えた方が便利な気がするんだけども、環境を切り替えれた方が後々良さそうな気がする今日この頃。

参考文献・引用

MSYS2の公式のサイトを参考にさせていただきました。

GUIを使わず、JSONファイルを直接編集してプロファイルを追加する手順は下記のページが参考になります。

ありがとうございました。