MSYS2 による gcc 開発環境の構築

MSYS の後継（？）とも言える [MSYS2] では開発環境を 32bit と 64bit で併設できるらしい。

- [MSYS2 installer](http://msys2.github.io/)
- [msys2](https://github.com/msys2) : MSYS2 GitHuB ページ
- [Alexpux/MSYS2-packages](https://github.com/Alexpux/MSYS2-packages) : MSYS2 パッケージのリポジトリ
- [Alexpux/MINGW-packages](https://github.com/Alexpux/MINGW-packages) : MinGW 32/64 bit パッケージのリポジトリ
- [MSYS2 / Wiki / MSYS2 installation](http://sourceforge.net/p/msys2/wiki/MSYS2%20installation/) : インストールガイド

[MSYS2]: https://github.com/msys2 "msys2"
[MinGW-w64]: http://mingw-w64.org/ "Mingw-w64 - GCC for Windows 64 & 32 bits [mingw-w64]"
[TDM-GCC]: http://tdm-gcc.tdragon.net/ "TDM-GCC"

## 追記

最近来られた方，古い記事でごめんなさい。
この記事については私のブログでフォローしています。
こちらの記事で分かりにくければ向こうも参考にしてください。

- [MSYS2 による gcc 開発環境の構築 ― MSYS2 のインストールから初期化処理まで — しっぽのさきっちょ | text.Baldanders.info](http://text.baldanders.info/remark/2016/03/gcc-msys2-1/)
- [MSYS2 による gcc 開発環境の構築 ― gcc パッケージ群の導入 — しっぽのさきっちょ | text.Baldanders.info](http://text.baldanders.info/remark/2016/03/gcc-msys2-2/)
- [MSYS2 による gcc 開発環境の構築 ― pgpdump をビルドする — しっぽのさきっちょ | text.Baldanders.info](http://text.baldanders.info/remark/2016/03/gcc-msys2-3/)

## MSYS2 のインストール

“[MSYS2 installer](http://msys2.github.io/)” の案内に従って 64bit 版のインストーラを取得してインストールする。以下，スナップショット

 ![MSYS2 Installation 1](https://c1.staticflickr.com/9/8756/17454737654_9207f34083_o.png "MSYS2 Installation 1")

わお！ 日本語だ。

 ![MSYS2 Installation 2](https://c4.staticflickr.com/8/7789/17454737884_078ed12077_o.png "MSYS2 Installation 2")

 ![MSYS2 Installation 3](https://c4.staticflickr.com/8/7792/17454738154_2e21b09cd4_o.png "MSYS2 Installation 3")

 ![MSYS2 Installation 4](https://c1.staticflickr.com/9/8831/17889627200_8edaed4806_o.png "MSYS2 Installation 4")

インストーラが終了するとターミナル（mintty）が起動する。以降はテキストで。

まずはパッケージ管理ツールのアップデートから

```shell
$ pacman --needed -Sy bash pacman pacman-mirrors msys2-runtime
:: パッケージデータベースの同期中...
 mingw32                  238.7 KiB   925K/s 00:00 [#####################] 100%
 mingw32.sig               96.0   B  0.00B/s 00:00 [#####################] 100%
 mingw64                  239.3 KiB  3.44M/s 00:00 [#####################] 100%
 mingw64.sig               96.0   B  0.00B/s 00:00 [#####################] 100%
 msys                     126.4 KiB  3.17M/s 00:00 [#####################] 100%
 msys.sig                  96.0   B  0.00B/s 00:00 [#####################] 100%
警告: pacman-mirrors-20141223-1 は最新です -- スキップ
警告: msys2-runtime-2.1.0.16359.acadff9-1 は最新です -- スキップ
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (2) bash-4.3.039-1  pacman-4.2.1.6157.6e6093b-1

合計ダウンロード容量:   5.58 MiB
合計インストール容量:  34.55 MiB
最終的なアップグレード容量:   0.03 MiB

:: インストールを行いますか？ [Y/n] y
:: パッケージを取得します ...
 bash-4.3.039-1-x86_64   1864.8 KiB  3.47M/s 00:01 [#####################] 100%
 pacman-4.2.1.6157.6...     3.8 MiB  3.54M/s 00:01 [#####################] 100%
(2/2) キーリングのキーを確認                       [#####################] 100%
(2/2) パッケージの整合性をチェック                 [#####################] 100%
(2/2) パッケージファイルのロード                   [#####################] 100%
(2/2) ファイルの衝突をチェック                     [#####################] 100%
(2/2) 空き容量を確認                               [#####################] 100%
(1/2) 更新 bash                                    [#####################] 100%
(2/2) 更新 pacman                                  [#####################] 100%
```

おっと！ bash も更新されてしまった。ではターミナルを再起動（インストールフォルダにある `msys2_shell.bat` を起動する）。

```shell
$ pacman -Syu
:: パッケージデータベースの同期中...
 mingw32 は最新です
 mingw64 は最新です
 msys は最新です
:: システム全体の更新を開始...
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (1) gawk-4.1.3-1

合計ダウンロード容量:  0.93 MiB
合計インストール容量:  2.74 MiB
最終的なアップグレード容量:  0.01 MiB

:: インストールを行いますか？ [Y/n] y
:: パッケージを取得します ...
 gawk-4.1.3-1-x86_64      951.1 KiB  1865K/s 00:01 [#####################] 100%
(1/1) キーリングのキーを確認                       [#####################] 100%
(1/1) パッケージの整合性をチェック                 [#####################] 100%
(1/1) パッケージファイルのロード                   [#####################] 100%
(1/1) ファイルの衝突をチェック                     [#####################] 100%
(1/1) 空き容量を確認                               [#####################] 100%
(1/1) 更新 gawk                                    [#####################] 100%
```

これでパッケージの更新は完了。

“[MSYS2 installer](http://msys2.github.io/)” の通りに，試しに git をインストールしようとしたらエラいことに（笑）

```shell
$ pacman -S git
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (39) db-5.3.28-2  expat-2.1.0-2  gdbm-1.11-3  heimdal-1.5.3-6
                heimdal-libs-1.5.3-6  icu-51.2-2  libdb-5.3.28-2
                libedit-3.1-20130712  libgdbm-1.11-3  libsqlite-3.8.8.2-1
                openssh-6.7p1-1  perl-5.20.2-1  perl-Authen-SASL-2.16-2
                perl-Convert-BinHex-1.123-2  perl-Encode-Locale-1.03-2
                perl-Error-0.17023-1  perl-File-Listing-6.04-2
                perl-HTML-Parser-3.71-2  perl-HTML-Tagset-3.20-2
                perl-HTTP-Cookies-6.01-2  perl-HTTP-Daemon-6.01-2
                perl-HTTP-Date-6.02-2  perl-HTTP-Message-6.06-2
                perl-HTTP-Negotiate-6.01-2  perl-IO-Socket-SSL-2.008-1
                perl-IO-stringy-2.110-2  perl-LWP-MediaTypes-6.02-2
                perl-MIME-tools-5.505-2  perl-MailTools-2.13-2
                perl-Net-HTTP-6.06-2  perl-Net-SMTP-SSL-1.01-2
                perl-Net-SSLeay-1.64-1  perl-TermReadKey-2.32-2
                perl-TimeDate-2.30-2  perl-URI-1.65-1  perl-WWW-RobotRules-6.02-2
                perl-libwww-6.08-1  vim-7.4.728-1  git-2.4.1-1

合計ダウンロード容量:   30.29 MiB
合計インストール容量:  134.32 MiB

:: インストールを行いますか？ [Y/n] y
:: パッケージを取得します ...
 expat-2.1.0-2-x86_64              13.1 KiB  6.39M/s 00:00 [#############] 100%
 libdb-5.3.28-2-x86_64            656.4 KiB   714K/s 00:01 [#############] 100%
 db-5.3.28-2-x86_64                41.7 KiB   221K/s 00:00 [#############] 100%
 libgdbm-1.11-3-x86_64             20.4 KiB   214K/s 00:00 [#############] 100%
 gdbm-1.11-3-x86_64               108.5 KiB   359K/s 00:00 [#############] 100%
 perl-5.20.2-1-x86_64              10.7 MiB  2.75M/s 00:04 [#############] 100%
 perl-Error-0.17023-1-any          18.3 KiB  17.9M/s 00:00 [#############] 100%
 vim-7.4.728-1-x86_64               5.9 MiB  3.36M/s 00:02 [#############] 100%
 icu-51.2-2-x86_64                  6.0 MiB  1339K/s 00:05 [#############] 100%
 libsqlite-3.8.8.2-1-x86_64       399.1 KiB  1339K/s 00:00 [#############] 100%
 heimdal-libs-1.5.3-6-x86_64      583.9 KiB  3.41M/s 00:00 [#############] 100%
 heimdal-1.5.3-6-x86_64           534.3 KiB  3.14M/s 00:00 [#############] 100%
 libedit-3.1-20130712-x86_64       74.8 KiB  44.3K/s 00:02 [#############] 100%
 openssh-6.7p1-1-x86_64           665.5 KiB   286K/s 00:02 [#############] 100%
 perl-Authen-SASL-2.16-2-any       42.4 KiB  77.5K/s 00:01 [#############] 100%
 perl-Encode-Locale-1.03-2-any     10.0 KiB  4.87M/s 00:00 [#############] 100%
 perl-HTTP-Date-6.02-2-any          8.6 KiB  8.42M/s 00:00 [#############] 100%
 perl-File-Listing-6.04-2-any       7.7 KiB  3.76M/s 00:00 [#############] 100%
 perl-HTML-Tagset-3.20-2-any       10.3 KiB  5.01M/s 00:00 [#############] 100%
 perl-HTML-Parser-3.71-2-x86_64    81.6 KiB  93.6K/s 00:01 [#############] 100%
 perl-LWP-MediaTypes-6.02-2-any    18.0 KiB  62.9K/s 00:00 [#############] 100%
 perl-URI-1.65-1-any               82.6 KiB   276K/s 00:00 [#############] 100%
 perl-HTTP-Message-6.06-2-any      71.3 KiB  83.1K/s 00:01 [#############] 100%
 perl-HTTP-Cookies-6.01-2-any      20.4 KiB  74.9K/s 00:00 [#############] 100%
 perl-HTTP-Daemon-6.01-2-any       14.2 KiB  49.9K/s 00:00 [#############] 100%
 perl-HTTP-Negotiate-6.01-2-any    11.4 KiB  5.58M/s 00:00 [#############] 100%
 perl-Net-HTTP-6.06-2-any          20.9 KiB  10.1K/s 00:02 [#############] 100%
 perl-WWW-RobotRules-6.02-2-any    12.2 KiB  5.98M/s 00:00 [#############] 100%
 perl-libwww-6.08-1-any           132.1 KiB   118K/s 00:01 [#############] 100%
 perl-TimeDate-2.30-2-any          35.9 KiB  64.1K/s 00:01 [#############] 100%
 perl-MailTools-2.13-2-any         66.1 KiB  78.2K/s 00:01 [#############] 100%
 perl-IO-stringy-2.110-2-any       58.1 KiB  98.7K/s 00:01 [#############] 100%
 perl-Convert-BinHex-1.123-2-any   30.1 KiB   108K/s 00:00 [#############] 100%
 perl-MIME-tools-5.505-2-any      194.4 KiB   137K/s 00:01 [#############] 100%
 perl-Net-SSLeay-1.64-1-x86_64    187.3 KiB   133K/s 00:01 [#############] 100%
 perl-IO-Socket-SSL-2.008-1-any   111.8 KiB   565K/s 00:00 [#############] 100%
 perl-Net-SMTP-SSL-1.01-2-any       4.2 KiB  4.13M/s 00:00 [#############] 100%
 perl-TermReadKey-2.32-2-x86_64    21.9 KiB  77.8K/s 00:00 [#############] 100%
 git-2.4.1-1-x86_64                 3.4 MiB  4.08M/s 00:01 [#############] 100%
(39/39) キーリングのキーを確認                             [#############] 100%
(39/39) パッケージの整合性をチェック                       [#############] 100%
(39/39) パッケージファイルのロード                         [#############] 100%
(39/39) ファイルの衝突をチェック                           [#############] 100%
(39/39) 空き容量を確認                                     [#############] 100%
( 1/39) インストール expat                                 [#############] 100%
( 2/39) インストール libdb                                 [#############] 100%
( 3/39) インストール db                                    [#############] 100%
( 4/39) インストール libgdbm                               [#############] 100%
( 5/39) インストール gdbm                                  [#############] 100%
( 6/39) インストール perl                                  [#############] 100%
( 7/39) インストール perl-Error                            [#############] 100%
( 8/39) インストール vim                                   [#############] 100%
( 9/39) インストール icu                                   [#############] 100%
(10/39) インストール libsqlite                             [#############] 100%
(11/39) インストール heimdal-libs                          [#############] 100%
(12/39) インストール heimdal                               [#############] 100%
(13/39) インストール libedit                               [#############] 100%
(14/39) インストール openssh                               [#############] 100%
(15/39) インストール perl-Authen-SASL                      [#############] 100%
(16/39) インストール perl-Encode-Locale                    [#############] 100%
(17/39) インストール perl-HTTP-Date                        [#############] 100%
(18/39) インストール perl-File-Listing                     [#############] 100%
(19/39) インストール perl-HTML-Tagset                      [#############] 100%
(20/39) インストール perl-HTML-Parser                      [#############] 100%
(21/39) インストール perl-LWP-MediaTypes                   [#############] 100%
(22/39) インストール perl-URI                              [#############] 100%
(23/39) インストール perl-HTTP-Message                     [#############] 100%
(24/39) インストール perl-HTTP-Cookies                     [#############] 100%
(25/39) インストール perl-HTTP-Daemon                      [#############] 100%
(26/39) インストール perl-HTTP-Negotiate                   [#############] 100%
(27/39) インストール perl-Net-HTTP                         [#############] 100%
(28/39) インストール perl-WWW-RobotRules                   [#############] 100%
(29/39) インストール perl-libwww                           [#############] 100%
perl-libwww の提案パッケージ
    perl-LWP-Protocol-HTTPS: for https:// url schemes
(30/39) インストール perl-TimeDate                         [#############] 100%
(31/39) インストール perl-MailTools                        [#############] 100%
(32/39) インストール perl-IO-stringy                       [#############] 100%
(33/39) インストール perl-Convert-BinHex                   [#############] 100%
module test... pass.
(34/39) インストール perl-MIME-tools                       [#############] 100%
(35/39) インストール perl-Net-SSLeay                       [#############] 100%
(36/39) インストール perl-IO-Socket-SSL                    [#############] 100%
(37/39) インストール perl-Net-SMTP-SSL                     [#############] 100%
(38/39) インストール perl-TermReadKey                      [#############] 100%
(39/39) インストール git                                   [#############] 100%
git の提案パッケージ
    python2: various helper scripts
    subversion: git svn
```

てか，本当に最小限しか入ってないんだな（笑） python2 と subversion を提案されてしまったが，これはまた今度。

### MSYS2 起動モード

[MSYS2] の起動バッチには以下の3つがある（64bit 版をインストールした場合）

- `mingw32_shell.bat`
- `mingw64_shell.bat`
- `msys2_shell.bat`

中身はターミナルエミュレータ（既定で mintty）の場所を探して起動するだけだが，環境変数 `MSYSTEM` にそれぞれ以下の値をセットしている

| バッチファイル      | セットする値 |
|:--------------------|:-------------|
| `mingw32_shell.bat` | `MINGW32`    |
| `mingw64_shell.bat` | `MINGW64`    |
| `msys2_shell.bat`   | `MSYS`       |

環境変数 `MSYSTEM` は `/etc/profile` 内で参照される。

```bash:profile
MSYS2_PATH="/usr/local/bin:/usr/bin:/bin"
MANPATH="/usr/local/man:/usr/share/man:/usr/man:/share/man:${MANPATH}"
INFOPATH="/usr/local/info:/usr/share/info:/usr/info:/share/info:${INFOPATH}"
MINGW_MOUNT_POINT=
if [ -n "$MSYSTEM" ]
then
  case "$MSYSTEM" in
    MINGW32)
      MINGW_MOUNT_POINT=/mingw32
      PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}:${PATH}"
      PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig"
      ACLOCAL_PATH="${MINGW_MOUNT_POINT}/share/aclocal:/usr/share/aclocal"
      MANPATH="${MINGW_MOUNT_POINT}/share/man:${MANPATH}"
    ;;
    MINGW64)
      MINGW_MOUNT_POINT=/mingw64
      PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}:${PATH}"
      PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig"
      ACLOCAL_PATH="${MINGW_MOUNT_POINT}/share/aclocal:/usr/share/aclocal"
      MANPATH="${MINGW_MOUNT_POINT}/share/man:${MANPATH}"
    ;;
    MSYS)
      PATH="${MSYS2_PATH}:/opt/bin:${PATH}"
      PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig:/lib/pkgconfig"
    ;;
    *)
      PATH="${MSYS2_PATH}:${PATH}"
    ;;
  esac
else
  PATH="${MSYS2_PATH}:${PATH}"
fi
```

`MINGW32` または `MINGW64` の場合は，新たに `/mingw32` または `/mingw64` がパス等に追加されているのが分かるだろう。

各モードはインストール元のリポジトリと関連している。

### バッチファイルのチューニング

上述の `/etc/profile` に書かれている通り [MSYS2] では Windows の PATH も取り込むが，実際には [MSYS2] 上で動いてほしくないものもあるので，バッチファイル内で PATH を潰すか，または以下のように

```bat:msys2_shell.bat
set PATH=%SystemRoot%System32
```

必要なものだけ再設定する。 Windows 上の特定のツールを使いたい場合はフルパス（もしくはその alias）で指定するか， `/etc/fstab` でマウントするほうがスマート。

[MSYS2] のホームディレクトリは，インストールフォルダ直下の `home\username` フォルダになるが， Windows 上で自前のホームディレクトリを作っている場合は，その場所を `/etc/fstab` でマウントする手もある。

```text:fstab
C:/home		/home
```

この場合，元のフォルダにある `.profile` ファイル等の移動も忘れないこと。

### MSYS2 のパッケージ管理

[MSYS2] では pacman でパッケージ管理を行うらしい。
pacman は元々 Arch Linux のパッケージ管理ツールで，使い方もこれと同じようだ。

- [pacman - ArchWiki](https://archlinuxjp.kusakata.com/wiki/Pacman)

よく使うコマンドとしては

- `pacman -S <package_name1> [package_name2...]` : 指定したパッケージをインストールする
- `pacman -Sl [repository]` : パッケージを一覧表示する（リポジトリを指定可能）
- `pacman -Ss [regex...]` : パッケージを一覧・検索する（キーワードを指定可能）
- `pacman -Su` : インストール済みのパッケージを更新する
- `pacman -Sy` : パッケージのデータベースを更新する
- `pacman -Syu` : `-Su`, `-Sy` の同時指定
- `pacman -Q [package_name...]` : インストール済みパッケージを一覧・検索する（パッケージを指定可能）
- `pacman -Qs [regex...]` : インストール済みパッケージを一覧・検索する（をキーワードを指定可能）
- `pacman -R <package_name>` : 指定したパッケージを削除する
- `pacman -Rs <package_name>` : 依存関係を含めて指定したパッケージを削除する（指定したパッケージにのみ依存するパッケージを削除）

あたりか。

### MSYS2 のリポジトリ

`/etc/pacman.conf` を見ると MSYS2 では `mingw32`, `mingw64`, `msys` の3つのリポジトリを管理していることが分かる。

- `mingw32` : http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/i686
- `mingw64` : http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/x86_64
- `msys` : http://downloads.sourceforge.net/project/msys2/REPOS/MSYS2/$arch

`$arch` はインストールした MSYS2 のアーキテクチャによって異なる。 64bit 版を入れた場合は `x86_64` になる筈である。

例えば，以下に示すように gcc もリポジトリごとにそれぞれある。

```shell
$ pacman -Sl | grep gcc
mingw32 mingw-w64-i686-gcc 4.9.2-5
mingw32 mingw-w64-i686-gcc-ada 4.9.2-5
mingw32 mingw-w64-i686-gcc-ada-debug 4.9.1-3
mingw32 mingw-w64-i686-gcc-debug 4.9.1-3
mingw32 mingw-w64-i686-gcc-fortran 4.9.2-5
mingw32 mingw-w64-i686-gcc-fortran-debug 4.9.1-3
mingw32 mingw-w64-i686-gcc-libgfortran 4.9.2-5
mingw32 mingw-w64-i686-gcc-libgfortran-debug 4.9.1-3
mingw32 mingw-w64-i686-gcc-libs 4.9.2-5
mingw32 mingw-w64-i686-gcc-libs-debug 4.9.1-3
mingw32 mingw-w64-i686-gcc-objc 4.9.2-5
mingw32 mingw-w64-i686-gcc-objc-debug 4.9.1-3
mingw64 mingw-w64-x86_64-gcc 4.9.2-5
mingw64 mingw-w64-x86_64-gcc-ada 4.9.2-5
mingw64 mingw-w64-x86_64-gcc-ada-debug 4.9.1-3
mingw64 mingw-w64-x86_64-gcc-debug 4.9.1-3
mingw64 mingw-w64-x86_64-gcc-fortran 4.9.2-5
mingw64 mingw-w64-x86_64-gcc-fortran-debug 4.9.1-3
mingw64 mingw-w64-x86_64-gcc-libgfortran 4.9.2-5
mingw64 mingw-w64-x86_64-gcc-libgfortran-debug 4.9.1-3
mingw64 mingw-w64-x86_64-gcc-libs 4.9.2-5
mingw64 mingw-w64-x86_64-gcc-libs-debug 4.9.1-3
mingw64 mingw-w64-x86_64-gcc-objc 4.9.2-5
mingw64 mingw-w64-x86_64-gcc-objc-debug 4.9.1-3
msys gcc 4.9.2-4
msys gcc-fortran 4.9.2-4
msys gcc-libs 4.9.2-4
msys mingw-w64-cross-gcc 4.9.2-2
```

どれを使うかはユーザ次第だが， `msys` の方は開発用というより [MSYS2] ビルド用という感じである（微妙にバージョンが古い）。 gcc を 32bit 版と 64bit 版で使い分ける場合は `msys` 版は入れないほうがいいかもしれない。

## gcc のインストール

### gcc のスレッドモデルと例外処理

`mingw32` または `mingw64` で提供される gcc では，スレッドモデルと例外処理は以下のようになっているらしい。
（「[MSYS2 / Tickets / #24 Mingw64 downloads through msys2?](http://sourceforge.net/p/msys2/tickets/24/)」より）

> On MSYS2 I maintain only one configuration:
> 32-bit: threads=posix, exceptions=dwarf
> 64-bit: threads=posix, exceptions=seh

[MSYS2] のベースになっている [MinGW-w64] のスレッドモデルには win32 と posix が提供されている。 win32 は Windows ネイティブなスレッド関連関数を使っているため速いが， C++11 の thread, mutex, future はサポートしていないらしい。

例外処理には SJLJ（SetJump/LongJump）， [DWARF](http://ja.wikipedia.org/wiki/DWARF)2， SEH（Structured Exception Handling）があり，この中では Windows ネイティブな SEH が一番速い。ただし SEH は 64bit gcc でしか対応していないため 32bit 環境では使えない。

[MinGW-w64] ではインストール時にスレッドモデルと例外処理を選択できる。

[MinGW-w64] のもうひとつの実装である [TDM-GCC] では，スレッドモデルには posix，例外処理には SJLJ（32bit）または SEH（64bit）が設定されているようだ。
（“[TDM-GCC : Quirks](http://tdm-gcc.tdragon.net/quirks)” より）

> TDM-GCC includes a pthreads emulation layer for Microsoft Windows systems, called "winpthreads". This lets you use std::thread and other C++11 concurrency features in your programs, out of the box.

> 64-bit binaries use "SEH", which stands for "Structured Exception Handling".

> If you create a 32-bit binary with the TDM64 edition, it will use SJLJ exception handling. DW2 exception handling is not available in this edition.

### MSYS2 関連ツールのインストール

まずは `msys2_shell.bat` でターミナルを起動する。

開発用に必要なツールをインストールする（上述の git インストールでインストールされなかったもの）。

```shell
$ pacman -S patch 
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (1) patch-2.7.5-1

合計ダウンロード容量:  0.07 MiB
合計インストール容量:  0.15 MiB

:: インストールを行いますか？ [Y/n] y
:: パッケージを取得します ...
 patch-2.7.5-1-x86_64      75.9 KiB   460K/s 00:00 [#####################] 100%
(1/1) キーリングのキーを確認                       [#####################] 100%
(1/1) パッケージの整合性をチェック                 [#####################] 100%
(1/1) パッケージファイルのロード                   [#####################] 100%
(1/1) ファイルの衝突をチェック                     [#####################] 100%
(1/1) 空き容量を確認                               [#####################] 100%
(1/1) インストール patch                           [#####################] 100%
patch の提案パッケージ
    ed: for patch -e functionality
```

### 32bit 版 gcc のインストール

`mingw32_shell.bat` でターミナルを起動し `mingw-w64-i686-toolchain` をインストールする。

```shell
$ pacman -S mingw-w64-i686-toolchain
:: 16 のパッケージがグループ mingw-w64-i686-toolchain にあります:
:: リポジトリ mingw32
   1) mingw-w64-i686-binutils  2) mingw-w64-i686-crt-git  3) mingw-w64-i686-gcc
   4) mingw-w64-i686-gcc-ada  5) mingw-w64-i686-gcc-fortran  6) mingw-w64-i686-gcc-libgfortran
   7) mingw-w64-i686-gcc-libs  8) mingw-w64-i686-gcc-objc  9) mingw-w64-i686-gdb
   10) mingw-w64-i686-headers-git  11) mingw-w64-i686-libmangle-git
   12) mingw-w64-i686-libwinpthread-git  13) mingw-w64-i686-make  14) mingw-w64-i686-tools-git
   15) mingw-w64-i686-winpthreads-git  16) mingw-w64-i686-winstorecompat-git

選択して下さい (デフォルト=all): 1 2 3 7 9 10 11 12 13 14 15 16
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (33) mingw-w64-i686-bzip2-1.0.6-3  mingw-w64-i686-cloog-0.18.1-3
                mingw-w64-i686-expat-2.1.0-5  mingw-w64-i686-gdbm-1.11-2
                mingw-w64-i686-gettext-0.19.4-2  mingw-w64-i686-gmp-6.0.0-2
                mingw-w64-i686-isl-0.13-1  mingw-w64-i686-libffi-3.2.1-2
                mingw-w64-i686-libiconv-1.14-4  mingw-w64-i686-libsystre-1.0.1-1
                mingw-w64-i686-libtre-git-r122.c2f5d13-3  mingw-w64-i686-mpc-1.0.3-1
                mingw-w64-i686-mpfr-3.1.2.p11-1  mingw-w64-i686-ncurses-5.9.20150321-1
                mingw-w64-i686-openssl-1.0.2.a-1  mingw-w64-i686-python2-2.7.10-1
                mingw-w64-i686-readline-6.2.005-3  mingw-w64-i686-tcl-8.6.4-1
                mingw-w64-i686-termcap-1.3.1-1  mingw-w64-i686-tk-8.6.4-1
                mingw-w64-i686-zlib-1.2.8-7  mingw-w64-i686-binutils-2.25-4
                mingw-w64-i686-crt-git-5.0.0.4501.4421b4a-1  mingw-w64-i686-gcc-4.9.2-5
                mingw-w64-i686-gcc-libs-4.9.2-5  mingw-w64-i686-gdb-7.9.1-1
                mingw-w64-i686-headers-git-5.0.0.4501.4421b4a-1
                mingw-w64-i686-libmangle-git-5.0.0.4497.4254261-1
                mingw-w64-i686-libwinpthread-git-5.0.0.4497.4254261-1
                mingw-w64-i686-make-4.0.2289.432cb65-1
                mingw-w64-i686-tools-git-5.0.0.4497.4254261-1
                mingw-w64-i686-winpthreads-git-5.0.0.4497.4254261-1
                mingw-w64-i686-winstorecompat-git-5.0.0.4497.4254261-1

合計ダウンロード容量:   68.00 MiB
合計インストール容量:  443.18 MiB

:: インストールを行いますか？ [Y/n] y
:: パッケージを取得します ...
 mingw-w64-i686-libiconv-1.14-4-any       602.3 KiB  1870K/s 00:00 [#####################] 100%
 mingw-w64-i686-bzip2-1.0.6-3-any          64.9 KiB  9.06M/s 00:00 [#####################] 100%
 mingw-w64-i686-zlib-1.2.8-7-any          152.2 KiB  3.23M/s 00:00 [#####################] 100%
 mingw-w64-i686-binutils-2.25-4-any        10.2 MiB  2.19M/s 00:05 [#####################] 100%
 mingw-w64-i686-headers-git-5.0.0.45...     4.9 MiB  2.53M/s 00:02 [#####################] 100%
 mingw-w64-i686-crt-git-5.0.0.4501.4...  1675.5 KiB  3.10M/s 00:01 [#####################] 100%
 mingw-w64-i686-libwinpthread-git-5....    38.1 KiB  12.4M/s 00:00 [#####################] 100%
 mingw-w64-i686-winpthreads-git-5.0....    46.9 KiB  9.16M/s 00:00 [#####################] 100%
 mingw-w64-i686-gmp-6.0.0-2-any           430.8 KiB   192K/s 00:02 [#####################] 100%
 mingw-w64-i686-mpfr-3.1.2.p11-1-any      241.7 KiB   952K/s 00:00 [#####################] 100%
 mingw-w64-i686-mpc-1.0.3-1-any            62.5 KiB  8.72M/s 00:00 [#####################] 100%
 mingw-w64-i686-isl-0.13-1-any            446.6 KiB  96.8K/s 00:05 [#####################] 100%
 mingw-w64-i686-cloog-0.18.1-3-any         63.8 KiB  74.2K/s 00:01 [#####################] 100%
 mingw-w64-i686-gcc-libs-4.9.2-5-any      492.2 KiB  1469K/s 00:00 [#####################] 100%
 mingw-w64-i686-gcc-4.9.2-5-any            21.7 MiB  3.12M/s 00:07 [#####################] 100%
 mingw-w64-i686-expat-2.1.0-5-any         106.9 KiB  1527K/s 00:00 [#####################] 100%
 mingw-w64-i686-gettext-0.19.4-2-any        3.9 MiB  2.97M/s 00:01 [#####################] 100%
 mingw-w64-i686-gdbm-1.11-2-any           150.1 KiB  2.04M/s 00:00 [#####################] 100%
 mingw-w64-i686-libffi-3.2.1-2-any         33.7 KiB   544K/s 00:00 [#####################] 100%
 mingw-w64-i686-libtre-git-r122.c2f5...    69.2 KiB  1064K/s 00:00 [#####################] 100%
 mingw-w64-i686-libsystre-1.0.1-1-any       9.2 KiB   306K/s 00:00 [#####################] 100%
 mingw-w64-i686-ncurses-5.9.20150321...  1618.5 KiB  5.58M/s 00:00 [#####################] 100%
 mingw-w64-i686-openssl-1.0.2.a-1-any       2.7 MiB  3.09M/s 00:01 [#####################] 100%
 mingw-w64-i686-termcap-1.3.1-1-any        12.2 KiB  11.9M/s 00:00 [#####################] 100%
 mingw-w64-i686-readline-6.2.005-3-any    235.5 KiB  76.1K/s 00:03 [#####################] 100%
 mingw-w64-i686-tcl-8.6.4-1-any             2.8 MiB  4.20M/s 00:01 [#####################] 100%
 mingw-w64-i686-tk-8.6.4-1-any           1873.4 KiB  3.45M/s 00:01 [#####################] 100%
 mingw-w64-i686-python2-2.7.10-1-any       10.6 MiB  4.04M/s 00:03 [#####################] 100%
 mingw-w64-i686-gdb-7.9.1-1-any             2.7 MiB  5.08M/s 00:01 [#####################] 100%
 mingw-w64-i686-libmangle-git-5.0.0....    16.7 KiB   521K/s 00:00 [#####################] 100%
 mingw-w64-i686-make-4.0.2289.432cb6...   103.6 KiB  59.9K/s 00:02 [#####################] 100%
 mingw-w64-i686-tools-git-5.0.0.4497...   222.1 KiB   854K/s 00:00 [#####################] 100%
 mingw-w64-i686-winstorecompat-git-5...     5.2 KiB  0.00B/s 00:00 [#####################] 100%
(33/33) キーリングのキーを確認                                     [#####################] 100%
(33/33) パッケージの整合性をチェック                               [#####################] 100%
(33/33) パッケージファイルのロード                                 [#####################] 100%
(33/33) ファイルの衝突をチェック                                   [#####################] 100%
(33/33) 空き容量を確認                                             [#####################] 100%
( 1/33) インストール mingw-w64-i686-libiconv                       [#####################] 100%
( 2/33) インストール mingw-w64-i686-bzip2                          [#####################] 100%
( 3/33) インストール mingw-w64-i686-zlib                           [#####################] 100%
( 4/33) インストール mingw-w64-i686-binutils                       [#####################] 100%
( 5/33) インストール mingw-w64-i686-headers-git                    [#####################] 100%
( 6/33) インストール mingw-w64-i686-crt-git                        [#####################] 100%
( 7/33) インストール mingw-w64-i686-libwinpthread-git              [#####################] 100%
( 8/33) インストール mingw-w64-i686-winpthreads-git                [#####################] 100%
( 9/33) インストール mingw-w64-i686-gmp                            [#####################] 100%
(10/33) インストール mingw-w64-i686-mpfr                           [#####################] 100%
(11/33) インストール mingw-w64-i686-mpc                            [#####################] 100%
(12/33) インストール mingw-w64-i686-isl                            [#####################] 100%
(13/33) インストール mingw-w64-i686-cloog                          [#####################] 100%
(14/33) インストール mingw-w64-i686-gcc-libs                       [#####################] 100%
(15/33) インストール mingw-w64-i686-gcc                            [#####################] 100%
(16/33) インストール mingw-w64-i686-expat                          [#####################] 100%
(17/33) インストール mingw-w64-i686-gettext                        [#####################] 100%
(18/33) インストール mingw-w64-i686-gdbm                           [#####################] 100%
(19/33) インストール mingw-w64-i686-libffi                         [#####################] 100%
(20/33) インストール mingw-w64-i686-libtre-git                     [#####################] 100%
(21/33) インストール mingw-w64-i686-libsystre                      [#####################] 100%
(22/33) インストール mingw-w64-i686-ncurses                        [#####################] 100%
(23/33) インストール mingw-w64-i686-openssl                        [#####################] 100%
(24/33) インストール mingw-w64-i686-termcap                        [#####################] 100%
(25/33) インストール mingw-w64-i686-readline                       [#####################] 100%
(26/33) インストール mingw-w64-i686-tcl                            [#####################] 100%
(27/33) インストール mingw-w64-i686-tk                             [#####################] 100%
(28/33) インストール mingw-w64-i686-python2                        [#####################] 100%
(29/33) インストール mingw-w64-i686-gdb                            [#####################] 100%
(30/33) インストール mingw-w64-i686-libmangle-git                  [#####################] 100%
(31/33) インストール mingw-w64-i686-make                           [#####################] 100%
(32/33) インストール mingw-w64-i686-tools-git                      [#####################] 100%
(33/33) インストール mingw-w64-i686-winstorecompat-git             [#####################] 100%
```

ありゃ。 python とかも入っちゃったねぇ。

```shell
$ gcc -v
Using built-in specs.
COLLECT_GCC=C:\msys64\mingw32\bin\gcc.exe
COLLECT_LTO_WRAPPER=C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: ../gcc-4.9.2/configure --prefix=/mingw32 --with-local-prefix=/mingw32/local --build=i686-w64-mingw32 --host=i686-w64-mingw32 --target=i686-w64-mingw32 --with-native-system-header-dir=/mingw32/i686-w64-mingw32/include --libexecdir=/mingw32/lib --with-gxx-include-dir=/mingw32/include/c++/4.9.2 --enable-bootstrap --with-arch=i686 --with-tune=generic --enable-languages=c,lto,c++,objc,obj-c++,fortran,ada --enable-shared --enable-static --enable-libatomic --enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-time=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-cloog-backend=isl --enable-version-specific-runtime-libs --disable-cloog-version-check --disable-isl-version-check --enable-lto --enable-libgomp --disable-multilib --enable-checking=release --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-libiconv --with-system-zlib --with-gmp=/mingw32 --with-mpfr=/mingw32 --with-mpc=/mingw32 --with-isl=/mingw32 --with-cloog=/mingw32 --with-pkgversion='Rev5, Built by MSYS2 project' --with-bugurl=http://sourceforge.net/projects/msys2 --with-gnu-as --with-gnu-ld --disable-sjlj-exceptions --with-dwarf2
Thread model: posix
gcc version 4.9.2 (Rev5, Built by MSYS2 project)
```

### 64bit 版 gcc のインストール

`mingw64_shell.bat` でターミナルを起動し `mingw-w64-x86_64-toolchain` をインストールする。

```shell
$ pacman -S mingw-w64-x86_64-toolchain
:: 16 のパッケージがグループ mingw-w64-x86_64-toolchain にあります:
:: リポジトリ mingw64
   1) mingw-w64-x86_64-binutils  2) mingw-w64-x86_64-crt-git  3) mingw-w64-x86_64-gcc
   4) mingw-w64-x86_64-gcc-ada  5) mingw-w64-x86_64-gcc-fortran
   6) mingw-w64-x86_64-gcc-libgfortran  7) mingw-w64-x86_64-gcc-libs
   8) mingw-w64-x86_64-gcc-objc  9) mingw-w64-x86_64-gdb  10) mingw-w64-x86_64-headers-git
   11) mingw-w64-x86_64-libmangle-git  12) mingw-w64-x86_64-libwinpthread-git
   13) mingw-w64-x86_64-make  14) mingw-w64-x86_64-tools-git
   15) mingw-w64-x86_64-winpthreads-git  16) mingw-w64-x86_64-winstorecompat-git

選択して下さい (デフォルト=all): 1 2 3 7 9 10 11 12 13 14 15 16
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (33) mingw-w64-x86_64-bzip2-1.0.6-3  mingw-w64-x86_64-cloog-0.18.1-3
                mingw-w64-x86_64-expat-2.1.0-5  mingw-w64-x86_64-gdbm-1.11-2
                mingw-w64-x86_64-gettext-0.19.4-2  mingw-w64-x86_64-gmp-6.0.0-2
                mingw-w64-x86_64-isl-0.13-1  mingw-w64-x86_64-libffi-3.2.1-2
                mingw-w64-x86_64-libiconv-1.14-4  mingw-w64-x86_64-libsystre-1.0.1-1
                mingw-w64-x86_64-libtre-git-r122.c2f5d13-3  mingw-w64-x86_64-mpc-1.0.3-1
                mingw-w64-x86_64-mpfr-3.1.2.p11-1  mingw-w64-x86_64-ncurses-5.9.20150321-1
                mingw-w64-x86_64-openssl-1.0.2.a-1  mingw-w64-x86_64-python2-2.7.10-1
                mingw-w64-x86_64-readline-6.2.005-3  mingw-w64-x86_64-tcl-8.6.4-1
                mingw-w64-x86_64-termcap-1.3.1-1  mingw-w64-x86_64-tk-8.6.4-1
                mingw-w64-x86_64-zlib-1.2.8-7  mingw-w64-x86_64-binutils-2.25-4
                mingw-w64-x86_64-crt-git-5.0.0.4501.4421b4a-1
                mingw-w64-x86_64-gcc-4.9.2-5  mingw-w64-x86_64-gcc-libs-4.9.2-5
                mingw-w64-x86_64-gdb-7.9.1-1
                mingw-w64-x86_64-headers-git-5.0.0.4501.4421b4a-1
                mingw-w64-x86_64-libmangle-git-5.0.0.4497.4254261-1
                mingw-w64-x86_64-libwinpthread-git-5.0.0.4497.4254261-1
                mingw-w64-x86_64-make-4.0.2289.432cb65-1
                mingw-w64-x86_64-tools-git-5.0.0.4497.4254261-1
                mingw-w64-x86_64-winpthreads-git-5.0.0.4497.4254261-1
                mingw-w64-x86_64-winstorecompat-git-5.0.0.4497.4254261-1

合計ダウンロード容量:   71.58 MiB
合計インストール容量:  476.52 MiB

:: インストールを行いますか？ [Y/n] y
:: パッケージを取得します ...
 mingw-w64-x86_64-libico...   598.0 KiB  1886K/s 00:00 [############################] 100%
 mingw-w64-x86_64-bzip2-...    66.9 KiB  9.33M/s 00:00 [############################] 100%
 mingw-w64-x86_64-zlib-1...   147.8 KiB   213K/s 00:01 [############################] 100%
 mingw-w64-x86_64-binuti...    11.7 MiB  2.03M/s 00:06 [############################] 100%
 mingw-w64-x86_64-header...     4.9 MiB  2.68M/s 00:02 [############################] 100%
 mingw-w64-x86_64-crt-gi...     2.6 MiB  3.50M/s 00:01 [############################] 100%
 mingw-w64-x86_64-libwin...    34.5 KiB  11.2M/s 00:00 [############################] 100%
 mingw-w64-x86_64-winpth...    44.7 KiB  10.9M/s 00:00 [############################] 100%
 mingw-w64-x86_64-gmp-6....   448.7 KiB  51.0K/s 00:09 [############################] 100%
 mingw-w64-x86_64-mpfr-3...   250.2 KiB   989K/s 00:00 [############################] 100%
 mingw-w64-x86_64-mpc-1....    62.3 KiB  8.70M/s 00:00 [############################] 100%
 mingw-w64-x86_64-isl-0....   434.3 KiB  55.6K/s 00:08 [############################] 100%
 mingw-w64-x86_64-cloog-...    63.3 KiB  73.0K/s 00:01 [############################] 100%
 mingw-w64-x86_64-gcc-li...   437.3 KiB  1477K/s 00:00 [############################] 100%
 mingw-w64-x86_64-gcc-4....    22.3 MiB  4.65M/s 00:05 [############################] 100%
 mingw-w64-x86_64-expat-...   105.6 KiB  1531K/s 00:00 [############################] 100%
 mingw-w64-x86_64-gettex...     3.8 MiB  3.34M/s 00:01 [############################] 100%
 mingw-w64-x86_64-gdbm-1...   151.9 KiB  2.12M/s 00:00 [############################] 100%
 mingw-w64-x86_64-libffi...    31.8 KiB   514K/s 00:00 [############################] 100%
 mingw-w64-x86_64-libtre...    69.0 KiB  1078K/s 00:00 [############################] 100%
 mingw-w64-x86_64-libsys...     9.1 KiB   295K/s 00:00 [############################] 100%
 mingw-w64-x86_64-ncurse...  1646.1 KiB  3.88M/s 00:00 [############################] 100%
 mingw-w64-x86_64-openss...     3.3 MiB  4.33M/s 00:01 [############################] 100%
 mingw-w64-x86_64-termca...    12.4 KiB  4.03M/s 00:00 [############################] 100%
 mingw-w64-x86_64-readli...   235.9 KiB  78.6K/s 00:03 [############################] 100%
 mingw-w64-x86_64-tcl-8....     2.8 MiB  4.20M/s 00:01 [############################] 100%
 mingw-w64-x86_64-tk-8.6...  1870.5 KiB  3.47M/s 00:01 [############################] 100%
 mingw-w64-x86_64-python...    10.5 MiB  4.23M/s 00:02 [############################] 100%
 mingw-w64-x86_64-gdb-7....     2.7 MiB  5.07M/s 00:01 [############################] 100%
 mingw-w64-x86_64-libman...    16.6 KiB   517K/s 00:00 [############################] 100%
 mingw-w64-x86_64-make-4...   101.9 KiB  58.8K/s 00:02 [############################] 100%
 mingw-w64-x86_64-tools-...   232.3 KiB  1001K/s 00:00 [############################] 100%
 mingw-w64-x86_64-winsto...     4.9 KiB  0.00B/s 00:00 [############################] 100%
(33/33) キーリングのキーを確認                         [############################] 100%
(33/33) パッケージの整合性をチェック                   [############################] 100%
(33/33) パッケージファイルのロード                     [############################] 100%
(33/33) ファイルの衝突をチェック                       [############################] 100%
(33/33) 空き容量を確認                                 [############################] 100%
( 1/33) インストール mingw-w64-x86_64-libiconv         [############################] 100%
( 2/33) インストール mingw-w64-x86_64-bzip2            [############################] 100%
( 3/33) インストール mingw-w64-x86_64-zlib             [############################] 100%
( 4/33) インストール mingw-w64-x86_64-binutils         [############################] 100%
( 5/33) インストール mingw-w64-x86_64-headers-git      [############################] 100%
( 6/33) インストール mingw-w64-x86_64-crt-git          [############################] 100%
( 7/33) インストール mingw-w64-x86_64-libwinpthrea...  [############################] 100%
( 8/33) インストール mingw-w64-x86_64-winpthreads-git  [############################] 100%
( 9/33) インストール mingw-w64-x86_64-gmp              [############################] 100%
(10/33) インストール mingw-w64-x86_64-mpfr             [############################] 100%
(11/33) インストール mingw-w64-x86_64-mpc              [############################] 100%
(12/33) インストール mingw-w64-x86_64-isl              [############################] 100%
(13/33) インストール mingw-w64-x86_64-cloog            [############################] 100%
(14/33) インストール mingw-w64-x86_64-gcc-libs         [############################] 100%
(15/33) インストール mingw-w64-x86_64-gcc              [############################] 100%
(16/33) インストール mingw-w64-x86_64-expat            [############################] 100%
(17/33) インストール mingw-w64-x86_64-gettext          [############################] 100%
(18/33) インストール mingw-w64-x86_64-gdbm             [############################] 100%
(19/33) インストール mingw-w64-x86_64-libffi           [############################] 100%
(20/33) インストール mingw-w64-x86_64-libtre-git       [############################] 100%
(21/33) インストール mingw-w64-x86_64-libsystre        [############################] 100%
(22/33) インストール mingw-w64-x86_64-ncurses          [############################] 100%
(23/33) インストール mingw-w64-x86_64-openssl          [############################] 100%
(24/33) インストール mingw-w64-x86_64-termcap          [############################] 100%
(25/33) インストール mingw-w64-x86_64-readline         [############################] 100%
(26/33) インストール mingw-w64-x86_64-tcl              [############################] 100%
(27/33) インストール mingw-w64-x86_64-tk               [############################] 100%
(28/33) インストール mingw-w64-x86_64-python2          [############################] 100%
(29/33) インストール mingw-w64-x86_64-gdb              [############################] 100%
(30/33) インストール mingw-w64-x86_64-libmangle-git    [############################] 100%
(31/33) インストール mingw-w64-x86_64-make             [############################] 100%
(32/33) インストール mingw-w64-x86_64-tools-git        [############################] 100%
(33/33) インストール mingw-w64-x86_64-winstorecomp...  [############################] 100%
```

```shell
$ gcc -v
Using built-in specs.
COLLECT_GCC=C:\msys64\mingw64\bin\gcc.exe
COLLECT_LTO_WRAPPER=C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../gcc-4.9.2/configure --prefix=/mingw64 --with-local-prefix=/mingw64/local --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include --libexecdir=/mingw64/lib --with-gxx-include-dir=/mingw64/include/c++/4.9.2 --enable-bootstrap --with-arch=x86-64 --with-tune=generic --enable-languages=c,lto,c++,objc,obj-c++,fortran,ada --enable-shared --enable-static --enable-libatomic --enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-time=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-cloog-backend=isl --enable-version-specific-runtime-libs --disable-cloog-version-check --disable-isl-version-check --enable-lto --enable-libgomp --disable-multilib --enable-checking=release --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-libiconv --with-system-zlib --with-gmp=/mingw64 --with-mpfr=/mingw64 --with-mpc=/mingw64 --with-isl=/mingw64 --with-cloog=/mingw64 --with-pkgversion='Rev5, Built by MSYS2 project' --with-bugurl=http://sourceforge.net/projects/msys2 --with-gnu-as --with-gnu-ld
Thread model: posix
gcc version 4.9.2 (Rev5, Built by MSYS2 project)
```

とういうわけで，[後半](http://qiita.com/spiegel-im-spiegel/items/877cbfb970509b272fc1)へ続く。

## 【おまけ】 Proxy サーバ越しのアクセス

Proxy サーバ越しに curl を使う場合は `~/.curlrc` に以下の記述を追加する。

```text:.curlrc
proxy-user = "username:password"
proxy = "http://proxy.example.com:8080"
```

pacman を Proxy サーバ越しに使う場合は、上述の通りに curl の設定をしたうえで `/etc/pacman.conf` ファイルの以下の記述を探し、コメントを解除する。

```text:pacman.conf
#XferCommand = /usr/bin/curl -C - -f %u > %o
```

gnupg で鍵サーバにアクセスする場合も、 Proxy サーバ越しにアクセスするのであれば、 `~/.gnupg/gpg.conf` に以下のオプションを追記する。

```text:gpg.conf
keyserver-options http-proxy=http://username:password@proxy.example.com:8080/
```

実は `/etc/pacman.d/gnupg` ディレクトリにも `gpg.conf` ファイルがあって `pacman-key` コマンドはこちらを見てるっぽい。  `/etc/pacman.d/gnupg` ディレクトリにある鍵束を gnupg から直接見る場合には以下のコマンドを叩く。

```shell
$ gpg --homedir /etc/pacman.d/gnupg --list-keys
```

## ブックマーク

- [MSYS2でMinGW環境整備(1)](http://arithmeticoverflow.blog.fc2.com/blog-entry-32.html)
- [MSYS2でMinGW環境整備(2)](http://arithmeticoverflow.blog.fc2.com/blog-entry-33.html)
- [MSYS2でMinGW環境整備(3)](http://arithmeticoverflow.blog.fc2.com/blog-entry-34.html)
- [MSYS2でMinGW環境整備(4)](http://arithmeticoverflow.blog.fc2.com/blog-entry-35.html)
- [MSYS2でMinGW環境整備(5)](http://arithmeticoverflow.blog.fc2.com/blog-entry-36.html)
- [MSYS2でMinGW環境整備(6)](http://arithmeticoverflow.blog.fc2.com/blog-entry-37.html)

- [Windowsでgccなどを利用できるMSYS2の環境設定など - Qiita](http://qiita.com/chromabox/items/fd07bad3f426101fc4a6) : コマンドライン引数の文字コードの問題
- [msys2 + pacmanをproxy環境で使う - なんとな～くしあわせ？の日記](http://nantonaku-shiawase.hatenablog.com/entry/2014/10/11/163342)
- [Windowsで最高のターミナルを構築する方法 - 純粋関数空間](http://tanakh.jp/posts/2011-11-15-windows-terminal.html) : mintty 最強！ という話
- [Windows で Qt5 が遅いわけ | Qt のあれこれ (仮)](http://qt-labs.jp/2013/05/why-qt5-is-slow-on-windows.html) : MinGW の例外処理について
- [Qt で MinGW-w64 を使用する際に必要になるスレッドモデルと例外機構の選択について | cutlassfish](https://cutlassfish.wordpress.com/2014/08/12/mingw-w64-%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E9%9A%9B%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AB%E3%81%AA%E3%82%8B%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89%E3%83%A2%E3%83%87%E3%83%AB%E3%81%A8%E4%BE%8B/)
- [MinGW (64bit) + MSYS 環境の構築 (1) | DeVlog - 銀の翼で翔べ -](http://www.devlog.alt-area.org/?p=2802) : 記述は古いがカスタマイズでは参考になる部分もある

- [MinGW-w64でlibwinpthread-1.dllの静的リンク](http://arithmeticoverflow.blog.fc2.com/blog-entry-65.html)