MSYS2のインストール
公式サイト:https://www.msys2.org/からインストーラをダウンロードし、インストールを完了させる。
パッケージリポジトリミラーの設定
msys64\etc\pacman.d\ディレクトリ内の以下の3つのファイルを編集し、中国科学技术大学(USTC)のミラーサーバを最優先に設定する。
- mirrorlist.mingw32
##
## 32-bit Mingw-w64 repository mirrorlist
##
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
Server = http://repo.msys2.org/mingw/i686
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/i686
Server = http://www2.futureware.at/~nickoe/msys2-mirror/i686/
- mirrorlist.mingw64
##
## 64-bit Mingw-w64 repository mirrorlist
##
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
Server = http://repo.msys2.org/mingw/x86_64
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/x86_64
Server = http://www2.futureware.at/~nickoe/msys2-mirror/x86_64/
- mirrorlist.msys
##
## MSYS2 repository mirrorlist
##
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
Server = http://repo.msys2.org/msys/$arch
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MSYS2/$arch
Server = http://www2.futureware.at/~nickoe/msys2-mirror/msys/$arch/
※ USTCミラーを先頭に記述しないと、デフォルトのリポジトリ(msys2.org)から取得されてしまうため注意。
pacmanの更新
MSYS2のShells(例:MSYS2 MSYS)を開き、以下のコマンドでpacmanとミラーリストを更新する。
pacman --noconfirm --needed -Sy bash pacman pacman-mirrors
その後、再度シェルを起動し、以下のコマンドでシステム全体のパッケージを最新化する。
pacman -Su
途中で
pacman -U xxx/xxx-yyy-zzz.pkg.tar.zst
MinGW-w64ツールチェインのインストール
32ビット環境用:
pacman -S mingw-w64-i686-toolchain
64ビット環境用:
pacman -S mingw-w64-x86_64-toolchain
環境変数の設定
C:\msys64\mingw64\binおよびC:\msys64\mingw32\binを PATH に追加する(両方が必要な場合は、優先順位に注意)。また、Go開発時には以下も推奨される。
set PATH=C:\msys64\mingw64\bin;%PATH%
gotk3(Go bindings for GTK 3)の導入
1. 環境変数 PKG_CONFIG_PATH を以下のように設定する。
set PKG_CONFIG_PATH=C:\msys64\mingw64\lib\pkgconfig
2. gdk-3.0.pc のリンカオプションを修正し、UUIDライブラリのリンク指定を走査可能にする。
bash -c "sed -i 's/-Wl,-luuid/-luuid/g' /mingw64/lib/pkgconfig/gdk-3.0.pc"
3. Goモジュールを取得してインストールする。
go get github.com/gotk3/gotk3
よくある問題と対応
xxxx.pcファイルが見つからないというエラーが出る場合、https://packages.msys2.org/ から対応するパッケージ(例:mingw-w64-x86_64-gtk3など)を検索し、MSYS2内でpacman -Sコマンドでインストールする。- gccや linking 時にパスが通っていないと判定される場合、MSYS2側から
export PKG_CONFIG_PATH=/mingw64/lib/pkgconfigを実行したり、コマンドラインで明示的にパスを通すことで回避できる。