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ファイルを直接編集してプロファイルを追加する手順は下記のページが参考になります。
ありがとうございました。