
とある事情で、 GTK+ 3.0 ウィンドウ ・ アプリケーションを作成して Linux で動かすことになりました。普段は Windows を使っているので、 Linux で開発作業を進めていくのが億劫です。(ゲスト OS として Linux をインストールしてその中で作業をすることになってしまいますので。)
できることなら開発作業は Windows で進めていきたい! ということで、 Windows に MSYS2 + MinGW GCC 環境を構築して GTK+ 3.0 アプリケーション開発ができる環境を作っていきます。最終的にはアプリケーションのソースコードをそのまま Linux 環境でビルドします。
MSYS2をダウンロードする
MinGW の公式ウェブサイトは http://www.mingw.org/ですが、 こちらはどうも更新が滞っているようです。今は MSYS2 のサイトから MinGW をインストールしたほうが良いようです。(http://www.mingw.org/からダウンロードできる MSYS1 には GTK+ 2.4 パッケージは含まれていますが、 GTK+3.0 パッケージが含まれていませんでした。)
32 ビット Windows にインストールする場合は左側の msys2-i686-*.exe をダウンロードします。64 ビット Windows にインストールする場合は右側の msys2-x86_64-*.exe をダウンロードします。
2018 年 1 月 30 日時点でのファイル名は msys2-i686-20161025.exe と msys2-x86_64-20161025.exe でしたので、 以下、 64 ビット版の msys2-x86_64-20161025.exe のインストールを例として説明していきます。
MSYS2をインストールする
ダウンロードした msys2-x86_64-20161025.exe をダブルクリックするとインストーラーが起動します。

次へ をクリックします。

インストールするディレクトリを指定します。特に事情がなければ、 デフォルトの C:\msys64 のままで良いと思います。次へ をクリックします。

スタートメニューに追加するショートカットの指定です。そのまま 次へ をクリックします。

インストールが始まります。少し時間がかかるのでしばらく待ちましょう。

インストールが完了すると 完了 ボタンが表示されます。完了 をクリックします。

インストールが完了すると、 Windows のスタートメニューに 3 つのショートカットが追加されます。
- MSYS2 MinGW 64-bit
- MSYS2 MinGW 32-bit
- MSYS2 MSYS
MinGW 64-bit、 MinGW 32-bit、 MSYS どれを選択しても UNIX ライクなシェルが起動します。それぞれの環境は独立しており、 この後インストールしていくパッケージは環境ごとに分かれています。
パッケージを更新する
インストーラーの最後の画面で MSYS2 64bit を実行中。 のチェックを入れたままにしていた場合は、 MSYS2 MSYS が起動します。

シェルを終了してしまった場合は、 スタートメニューから MSYS2 MinGW 64-bit、 MSYS2 MinGW 32-bit、 MSYS2 MSYS のいずれかを起動するか、 もしくは、 インストールディレクトリ C:\msys64 の下にある mingw64.exe、 mingw32.exe、 msys2.exe のいずれかを起動してください。どの方法でシェルを起動してもパッケージのインストール作業手順は同じです。
MSYS2 には Arch Linux 由来のパッケージマネージャー pacman が標準で含まれており、 パッケージマネージャー pacman を使って、 様々なパッケージを追加していくことができます。
はじめに以下のコマンドを実行してパッケージデータベースを最新にします。この処理は実際にパッケージを更新するわけではなくパッケージの一覧を新しくするだけなので、 あまり時間がかからずに終了します。
パッケージデータベースを更新するコマンド$ pacman -Sy

パッケージデータベースの更新が終了したら、 続いて以下のコマンドを実行してパッケージをアップグレードします。
パッケージをアップグレードするコマンド$ pacman -Su

「インストールを行いますか?」 と確認メッセージが出るので、 そのまま Enter キーを押すか、 Y または y を入力してから Enter キーを押します。

インターネット通信環境にもよりますが、 パッケージのアップグレード処理には少し時間がかかります。そして、 以下のメッセージが出て処理が止まることがあります。
- terminate MSYS2 without returning to shell and check for updates again for example close your terminal window instead of calling exit
「シェルに戻らずに MSYS2 を終了し、 もう一度、 更新をチェックしてください。たとえば、 exit コマンドを呼ぶ代わりにターミナル ・ ウィンドウを閉じてください。」 といった意味ですね。
この状態ではもうキー入力を受け付けないので exit コマンドを入力することもできません。指示通り、 ウィンドウ右上の×ボタンを押します。すぐに反応しない場合は、 何度か×ボタンを押して 10 秒程度待ってみてください。

このようなダイアログが表示されたら OK をクリックして終了します。
もう一度、 スタートメニューから MSYS2 MinGW 64-bit、 MSYS2 MinGW 32-bit、 MSYS2 MSYS のいずれかを起動して、 パッケージのアップグレードをします。
パッケージをアップグレードするコマンド$ pacman -Su

先程と同じ確認メッセージが出るので、 そのまま Enter キーを押すか、 Y または y を入力してから Enter キーを押します。

今度は無事にシェル ・ プロンプトに復帰しました。プロンプトに復帰したら、 「何も行うことがありません」 と表示されてパッケージ更新の必要がなくなるまで、 pacman -Su を繰り返し実行してください。
GCCパッケージをインストールする
パッケージを更新したら、 ようやく GCC コンパイラのインストールです。pacman に -Ssq オプションを付けて gcc を含むパッケージを検索してみます。
gccを含むパッケージを検索するコマンド$ pacman -Ssq gcc

$ pacman -Ssq gcc
mingw-w64-i686-gcc
mingw-w64-i686-gcc-ada
mingw-w64-i686-gcc-fortran
mingw-w64-i686-gcc-libgfortran
mingw-w64-i686-gcc-libs
mingw-w64-i686-gcc-objc
mingw-w64-i686-lcov
mingw-w64-x86_64-gcc
mingw-w64-x86_64-gcc-ada
mingw-w64-x86_64-gcc-fortran
mingw-w64-x86_64-gcc-libgfortran
mingw-w64-x86_64-gcc-libs
mingw-w64-x86_64-gcc-objc
mingw-w64-x86_64-lcov
gcc
gcc-fortran
gcc-libs
mingw-w64-cross-gcc
たくさんのパッケージが見つかりました。gcc-fortran や gcc-obj などが末尾に付くものは C/C++ではなく別の言語のパッケージなので無視できますが、 gcc 本体だけでも以下の 3 種類のパッケージがあります。
mingw-w64-i686-gccMinGW gcc コンパイラ (32 ビット版)mingw-w64-x86_64-gccMinGW gcc コンパイラ (64 ビット版)gccMSYS gcc コンパイラ
パッケージ名に何も付いていない gcc は MSYS のパッケージで、 MSYS のシェル内で使うことを想定しているパッケージです。頭に mingw-w64-i686- と付いているのは MinGW 32-bit のパッケージです。(32 ビットパッケージなのに w64 と付いていて紛らわしいですね。) mingw-w64-x86_64- と付いているものが MinGW 64-bit のパッケージです。MinGW 32-bit パッケージや MinGW 64-bit パッケージは MinGW シェルの中だけでなく、 Windows のコマンドプロンプト (cmd.exe) などからも使うことができます。
最終的には Eclipse CDT から gcc を呼び出して C/C++アプリケーションをビルドするのが目的なので、 MSYS2 シェルからしか使えない gcc パッケージではなく、 外部からも呼び出せる mingw-w64-x86_64-gcc パッケージをインストールします。
パッケージのインストールには pacman の -S オプションを使用します。
mingw-w64-x86_64-gccパッケージをインストールするコマンド$ pacman -S mingw-w64-x86_64-gcc

mingw-w64-x86_64-gcc パッケージと一緒に mingw-w64-x86_64-binutils-2 などの依存パッケージも自動的にインストールしてくれるようになっています。
「インストールを行いますか?」 と確認メッセージが出るので、 そのまま Enter キーを押すか、 Y または y を入力してから Enter キーを押します。
gccコマンドの確認
mingw-w64-x86_64-gcc パッケージのインストールが完了したら gcc コマンドが使えるか確認しておきます。
プロンプトで以下のコマンドを実行してみてください。
gccのバージョンを表示するコマンド$ gcc --version
コマンドを実行したシェルが MSYS だった場合、 残念ながら gcc コマンドが見つからないというメッセージが表示されます。

これは、 MSYS、 MinGW 64-bit、 MinGW 32-bit それぞれで環境が分離されており、 それぞれのパッケージコマンドがお互いに見えないようになっているからです。
MSYS シェルの代わりに MinGW 64-bit シェルを起動して、 gcc --version を実行してください。

MinGW 64-bit シェルであれば、 mingw-w64-x86_64- で始まるパッケージのコマンドが使えるようになっています。
Windows のコマンドプロンプト (cmd.exe) でも PATH 環境変数に C:\msys64\mingw64\bin を追加すれば、 gcc コマンドを使うことができます。

これで、 MinGW gcc のインストールは完了です。
makeパッケージをインストールする
Makefile を処理するのに必要になる make コマンドもインストールしておきます。
make パッケージも 3 つあります。
mingw-w64-i686-makeMinGW make コマンド (32 ビット版)mingw-w64-x86_64-makeMinGW make コマンド (64 ビット版)makeMSYS make コマンド
gcc は mingw-w64-x86_64- で始まるパッケージをインストールしましたが、 make コマンドは mingw-w64- の付かない MSYS の make パッケージをインストールします。
mingw-w64-*-make の場合はコマンドの名前が make.exe ではなく mingw32-make.exe となっており、 自分で make.exe にリネームするなどの手間がかかります。
makeパッケージをインストールするコマンド$ pacman -S make

これで、 make のインストールも完了です。
次回は Eclipse CDT をインストールしていきます。
