
C言語GUI入門|GTK 4をインストールする
GTK 4は、C言語からウィンドウ、ボタン、入力欄、メニューなどを利用するためのGUIライブラリです。
この節では、MSYS2 UCRT64環境へGTK 4をインストールし、次の方法で正しく導入できたことを確認します。
- pacmanでGTK 4パッケージをインストールする
- pkg-configが実行できることを確認する
- pkg-configからGTK 4が認識されていることを確認する
- GTK 4のバージョンを確認する
- gtk4-demoを起動する
- GTK 4のサンプル画面を操作する
使用する主なコマンドは次のとおりです。
| 目的 | コマンド |
|---|---|
| GTK 4をインストールする | pacman -S --needed mingw-w64-ucrt-x86_64-gtk4 |
| pkg-configのバージョンを確認する | pkg-config --version |
| GTK 4のバージョンを確認する | pkg-config --modversion gtk4 |
| pkg-configの場所を確認する | which pkg-config |
| gtk4-demoの場所を確認する | which gtk4-demo |
| GTK 4のサンプルを起動する | gtk4-demo |
第2章では、まだGTK 4を使ったC言語プログラムは作成しません。ここでは、GTK 4のライブラリと開発用ファイルを導入し、付属するデモアプリケーションが起動するところまで確認しましょう。
GTK 4パッケージに含まれるもの
GTK 4パッケージには、GUIアプリケーションの実行に必要なライブラリだけでなく、C言語からGTK 4を利用するための開発用ファイルも含まれています。
主な内容は次のとおりです。
- GTK 4のDLL
- C言語用のヘッダーファイル
- リンクに使用するライブラリ
- pkg-configが読み取る設定ファイル
- gtk4-demoなどの確認用ツール
- GTK 4に必要な関連ライブラリ
- アイコンや各種データファイル
MSYS2のUCRT64向けGTK 4パッケージ名は、次のとおりです。
mingw-w64-ucrt-x86_64-gtk4
このパッケージは、MSYS2のucrt64リポジトリで提供されています。
GTK 4パッケージ名の読み方
長いパッケージ名ですが、部分ごとに見ると意味が分かります。
| 部分 | 意味 |
|---|---|
| mingw-w64 | Windows向けの開発環境 |
| ucrt | Universal C Runtimeを使用する |
| x86_64 | 64ビットのIntelまたはAMD系CPU向け |
| gtk4 | GTKのバージョン4 |
本コンテンツではUCRT64環境を使用するため、パッケージ名にucrtが含まれているものを選びます。
次のような似た名前のパッケージと間違えないようにしましょう。
| パッケージ名 | 対象 |
|---|---|
| mingw-w64-ucrt-x86_64-gtk4 | 本コンテンツで使用するUCRT64向けGTK 4 |
| mingw-w64-x86_64-gtk4 | MINGW64向けGTK 4 |
| mingw-w64-ucrt-x86_64-gtk3 | UCRT64向けGTK 3 |
本コンテンツで使用するのは、GTK 3ではなくGTK 4です。
GTK 4と一緒に導入される関連ライブラリ
GTK 4は、単独ですべての処理を行っているわけではありません。文字表示、画像処理、基本データ型、オブジェクト管理などを、複数の関連ライブラリと分担しています。
| 関連ライブラリ | 主な役割 |
|---|---|
| GLib | 基本データ型、文字列、ファイル、イベント処理など |
| GObject | オブジェクトとシグナルの仕組み |
| GIO | ファイルやアプリケーションなどの入出力機能 |
| Pango | 文字の配置や描画 |
| Cairo | 2次元グラフィックスの描画 |
| GdkPixbuf | 画像データの読み込みや管理 |
| Graphene | 座標や行列などの計算 |
| GDK | 画面表示や入力イベントとGTKの橋渡し |
これらを個別に探してインストールする必要はありません。
pacmanがGTK 4の依存関係を調べ、必要なパッケージを一緒にインストールします。MSYS2の公式パッケージ情報でも、GTK 4がGLib、Pango、Cairo、GdkPixbufなどに依存していることを確認できます。
図1:GTK 4と関連ライブラリの構成

この図から分かること
GTK 4は、ウィンドウやボタンなどのGUI部品を提供します。その内部では、GLib、GObject、Pango、Cairoなどの関連ライブラリが役割を分担しています。
pacmanを使ってGTK 4をインストールすると、必要な依存パッケージも一緒に導入されます。初学者が関連ライブラリをひとつずつ調べてインストールする必要はありません。
インストール前の状態を確認する
GTK 4をインストールする前に、次の準備が完了していることを確認します。
- MSYS2がインストールされている
- MSYS2全体の更新が完了している
- GCCツールチェーンがインストールされている
- base-develがインストールされている
- MSYS2 UCRT64ターミナルを起動できる
- インターネットへ接続できる
MSYS2 UCRT64ターミナルを開き、プロンプトにUCRT64と表示されていることを確認します。
ユーザー名@コンピューター名 UCRT64 ~
$MSYSやMINGW64と表示されている場合は、現在のターミナルを閉じ、WindowsのスタートメニューからMSYS2 UCRT64を起動し直してください。
MSYS2を最新の状態にする
GTK 4をインストールする前に、MSYS2全体を更新します。
pacman -Syu更新対象が表示された場合は、画面の案内に従って更新します。
MSYS2本体の更新によってターミナルが閉じた場合は、MSYS2 UCRT64を起動し直し、同じコマンドをもう一度実行します。
pacman -Syu次のように表示されれば、更新するパッケージはありません。
:: Starting core system upgrade...
there is nothing to do
:: Starting full system upgrade...
there is nothing to doGTK 4だけを新しくして、ほかのライブラリを古いままにする部分更新は避けましょう。MSYS2全体を更新してからGTK 4を導入すると、依存関係の不一致を防ぎやすくなります。
GTK 4をインストールする
MSYS2 UCRT64ターミナルで、次のコマンドを実行します。
pacman -S --needed mingw-w64-ucrt-x86_64-gtk4GTKの公式Windows向け導入手順でも、MSYS2から同じUCRT64向けパッケージをインストールする方法が案内されています。
コマンドの意味
| 部分 | 役割 |
|---|---|
| pacman | MSYS2のパッケージ管理ツール |
| -S | パッケージをサーバーと同期してインストールする |
| --needed | 最新版が導入済みなら再インストールしない |
| mingw-w64-ucrt-x86_64-gtk4 | UCRT64向けGTK 4パッケージ |
コマンドが長いため、途中で改行しないように入力します。
インストール内容を確認する
コマンドを実行すると、GTK 4本体と依存パッケージの一覧が表示されます。
続いて、ダウンロードサイズとインストール後に使用する容量が表示されます。
表示内容は、すでにインストールされているパッケージやGTK 4のバージョンによって異なります。
最後に、次のような確認が表示されます。
:: Proceed with installation? [Y/n]Yを入力してEnterキーを押します。
YYが大文字になっているため、Enterキーだけでも処理を続けられます。
インストールが完了するまで待つ
インストール中は、次のような処理が行われます。
:: Retrieving packages...
:: Checking keys in keyring...
:: Checking package integrity...
:: Loading package files...
:: Checking for file conflicts...
:: Processing package changes...
:: Running post-transaction hooks...下図は実際の画面

再び入力待ちのプロンプトが表示されるまで、ターミナルを閉じないでください。
ユーザー名@コンピューター名 UCRT64 ~
$GTK 4がインストールされた場所
標準のC:\msys64へMSYS2をインストールした場合、GTK 4に関係するファイルは主にC:\msys64\ucrt64の下へ配置されます。
| ファイルの種類 | MSYS2形式の場所 | Windows形式の場所 |
|---|---|---|
| 実行ファイルとDLL | /ucrt64/bin | C:\msys64\ucrt64\bin |
| ヘッダーファイル | /ucrt64/include | C:\msys64\ucrt64\include |
| ライブラリ | /ucrt64/lib | C:\msys64\ucrt64\lib |
| pkg-config用ファイル | /ucrt64/lib/pkgconfig | C:\msys64\ucrt64\lib\pkgconfig |
| データファイル | /ucrt64/share | C:\msys64\ucrt64\share |
たとえば、GTK 4の主要なファイルには次のようなものがあります。
C:\msys64\ucrt64\bin\libgtk-4-1.dll
C:\msys64\ucrt64\bin\gtk4-demo.exe
C:\msys64\ucrt64\include\gtk-4.0MSYS2の公式パッケージ情報でも、gtk4-demo.exe、libgtk-4-1.dll、GTK 4のヘッダーファイルなどがUCRT64向けパッケージへ収録されていることを確認できます。
通常は、これらのファイルを手動で移動したり、編集したりする必要はありません。pacmanに管理を任せましょう。
pkg-configとは
pkg-configは、GCCが外部ライブラリを利用するときに必要な情報を取得するためのツールです。
GTK 4のような大きなライブラリでは、複数のヘッダーファイルやライブラリが関係します。必要なパスをすべて手作業でGCCへ指定するのは大変です。
pkg-configは、次の情報をまとめて調べます。
- GTK 4のヘッダーファイルがある場所
- GTK 4のライブラリがある場所
- コンパイルに必要なオプション
- リンクに必要なオプション
- GTK 4のバージョン
- GTK 4が依存しているライブラリ
MSYS2では、pkgconfがpkg-config互換の機能を提供しています。そのため、コマンド名としてpkg-configを使用できます。
pkg-configの働き
C言語のソースファイルをGTK 4に対応させるときは、次の関係になります。
| 担当 | 役割 |
|---|---|
| GCC | C言語のソースファイルをコンパイルする |
| GTK 4 | GUI機能を提供する |
| pkg-config | GCCへ渡すGTK 4の情報を調べる |
pkg-configそのものがソースファイルをコンパイルするわけではありません。GCCがGTK 4を見つけるための案内役です。
図2:pkg-configがGCCとGTK 4をつなぐ仕組み

この図から分かること
pkg-configは、GTK 4のヘッダーファイルやライブラリがどこにあるかを調べ、GCCへ渡す情報を用意します。
GCC、GTK 4、pkg-configは、それぞれ別の役割を持っています。GTK 4プログラムをコンパイルするときは、この3つが連携します。
pkg-configが実行できることを確認する
まず、pkg-config自体が実行できるか確認します。
pkg-config --version実行結果の例
3.0.5表示される番号は、インストールした時期によって異なります。
バージョン番号が表示されれば、pkg-configコマンドは実行できています。
pkg-configの場所を確認する
次のコマンドを実行します。
which pkg-config実行結果の例
/ucrt64/bin/pkg-configこの結果が表示されれば、UCRT64向けのpkg-configが使用されています。
Windows形式では、次の場所に対応します。
C:\msys64\ucrt64\bin\pkg-config.exeMSYS2のインストール先を変更した場合は、Windows形式の場所も変わります。
GTK 4のバージョンを確認する
pkg-configを使って、インストールされたGTK 4のバージョンを確認します。
pkg-config --modversion gtk4コマンドの意味
| 部分 | 役割 |
|---|---|
| pkg-config | ライブラリ情報を調べる |
| --modversion | 指定したライブラリのバージョンを表示する |
| gtk4 | 調べるライブラリの名前 |
ここで指定するgtk4は、pacmanのパッケージ名ではありません。
| 種類 | 名前 |
|---|---|
| pacmanで指定するパッケージ名 | mingw-w64-ucrt-x86_64-gtk4 |
| pkg-configで指定するライブラリ名 | gtk4 |
2つの名前を混同しないようにしましょう。
実行結果の例
4.22.4バージョン番号は、GTK 4の更新によって変わります。先頭が4になっていればGTK 4です。
このコマンドが成功したことで、次の3点を確認できます。
- GTK 4がインストールされている
- pkg-configがGTK 4の情報を見つけられる
- GTK 4のバージョン情報を読み取れる
GTK 4のインストール情報を確認する
必要に応じて、pacmanからインストール済みパッケージの情報を確認できます。
pacman -Qi mingw-w64-ucrt-x86_64-gtk4表示内容の例
Name : mingw-w64-ucrt-x86_64-gtk4
Version : 4.22.4-1
Description : GObject-based multi-platform GUI toolkit (v4)
Architecture : any実際のバージョンや表示項目は、インストールした時期によって異なります。
pkg-config --modversion gtk4ではGTK本体のバージョンが表示され、pacman -QiではMSYS2パッケージとしてのバージョンや説明が表示されます。
| 確認方法 | 分かること |
|---|---|
| pkg-config --modversion gtk4 | C言語のビルドで認識されるGTK 4のバージョン |
| pacman -Qi mingw-w64-ucrt-x86_64-gtk4 | MSYS2にインストールされたパッケージの詳細 |
| which pkg-config | 使用中のpkg-configの場所 |
| which gtk4-demo | gtk4-demoの場所 |
gtk4-demoとは
gtk4-demoは、GTK 4に用意されているさまざまな機能を確認できるデモアプリケーションです。
GTKの公式ドキュメントでは、多くのGTKウィジェットを開発者向けに紹介するサンプル集として説明されています。各サンプルでは、画面だけでなくソースコードやUI定義、画像などの関連リソースも確認できます。GTK 4公式gtk4-demoドキュメント
gtk4-demoを使うと、次のような点を確認できます。
- GTK 4のGUIウィンドウがWindows上で開く
- ボタンなどのウィジェットが表示される
- マウスで画面を操作できる
- 一覧や入力欄などが動作する
- GTK 4のDLLが正しく読み込まれる
- GTK 4のデータファイルが見つかる
C言語のプログラムをまだ書いていなくても、gtk4-demoを起動すればGTK 4の動作を確認できます。
gtk4-demoの場所を確認する
次のコマンドを実行します。
which gtk4-demo実行結果の例
/ucrt64/bin/gtk4-demoWindows形式では、次の場所に対応します。
C:\msys64\ucrt64\bin\gtk4-demo.exe/ucrt64/bin/gtk4-demoと表示されれば、UCRT64向けGTK 4に付属するデモが見つかっています。
gtk4-demoを起動する
MSYS2 UCRT64ターミナルで、次のコマンドを実行します。
gtk4-demoしばらくすると、GTK Demoというデモ画面が表示されます。
ターミナルでは、gtk4-demoが終了するまで入力待ちのプロンプトへ戻らない場合があります。これは、ターミナルから起動したGUIアプリケーションが動作中だからです。
gtk4-demoのウィンドウを閉じると、ターミナルへ入力待ちのプロンプトが戻ります。
gtk4-demoのサンプル画面を確認する
gtk4-demoには、GTK 4の機能を確認するためのサンプルが一覧で表示されます。

画面の構成やサンプル名はGTK 4のバージョンによって変わる場合がありますが、基本的には次のような内容を確認できます。
- ウィンドウ
- ボタン
- ラベル
- 入力欄
- リスト
- メニュー
- ダイアログ
- 画像
- アニメーション
- ドラッグアンドドロップ
- CSSによる装飾
- レイアウト
- テキスト表示
- 描画機能
一覧からサンプルを選択すると、そのサンプルの説明やソースコードが表示されます。
サンプルによっては、実行用のボタンをクリックすると別のウィンドウが開きます。実際にボタンをクリックしたり、入力欄へ文字を入力したりしてみましょう。
確認しておきたい操作
gtk4-demoが起動したら、次の操作を試します。
- 左側または一覧部分からサンプルを選択する
- サンプルの説明が表示されることを確認する
- ソースコードを表示するタブがあれば開く
- 実行用のボタンがあればクリックする
- 開いたサンプルウィンドウを操作する
- サンプルウィンドウを閉じる
- gtk4-demo本体を閉じる
- ターミナルへプロンプトが戻ることを確認する
ソースコードが表示されても、この段階ですべてを理解する必要はありません。GTK 4ではどのような画面を作れるのか、まずは雰囲気をつかんでみましょう。
図3:gtk4-demoでGTK 4の動作を確認する

この図から分かること
gtk4-demoが起動すれば、GTK 4の実行ファイル、DLL、データファイルなどが正しく利用できています。
サンプル一覧から項目を選ぶと、さまざまなGUI部品の見た目や動作を確認できます。画面内に表示されるソースコードは、今後GTK 4の使い方を調べるときの参考にもなります。
gtk4-demoを終了する
開いたサンプルウィンドウがある場合は、先にそのウィンドウを閉じます。
続いて、gtk4-demo本体の閉じるボタンをクリックします。
gtk4-demoが終了すると、ターミナルへ次のようなプロンプトが戻ります。
ユーザー名@コンピューター名 UCRT64 ~
$プロンプトが戻れば、gtk4-demoの実行は終了しています。
正常にインストールできたときの確認結果
ここまでの確認がすべて成功すると、次の状態になります。
| 確認内容 | 期待する結果 |
|---|---|
| 使用中のターミナル | プロンプトにUCRT64と表示される |
| pkg-config --version | バージョン番号が表示される |
| which pkg-config | /ucrt64/bin/pkg-configと表示される |
| pkg-config --modversion gtk4 | 4から始まるGTKのバージョンが表示される |
| which gtk4-demo | /ucrt64/bin/gtk4-demoと表示される |
| gtk4-demo | GTK 4のサンプル画面が開く |
| 画面操作 | ボタンや一覧などをマウスで操作できる |
これらを確認できれば、GTK 4のインストールは完了しています。
パッケージが見つからない場合
インストール時に次のようなエラーが表示されることがあります。
error: target not found: mingw-w64-ucrt-x86_64-gtk4この場合は、次の点を確認します。
- パッケージ名を正しく入力したか
- ucrtの部分が抜けていないか
- x86_64のつづりが正しいか
- gtk4の数字が4になっているか
- MSYS2全体を更新したか
- インターネットへ接続されているか
まず、MSYS2全体を更新します。
pacman -Syuその後、インストールコマンドをもう一度実行します。
pacman -S --needed mingw-w64-ucrt-x86_64-gtk4pkg-configが見つからない場合
次のエラーが表示された場合は、pkg-configを実行できていません。
bash: pkg-config: command not foundGCCツールチェーンが正しくインストールされているか確認します。
pacman -S --needed mingw-w64-ucrt-x86_64-toolchain必要に応じて、UCRT64向けのpkgconfを個別に確認します。
pacman -S --needed mingw-w64-ucrt-x86_64-pkgconfインストール後はターミナルを閉じ、MSYS2 UCRT64を起動し直してから、もう一度確認します。
pkg-config --versionpkg-configがGTK 4を見つけられない場合
次のようなエラーが表示される場合があります。
Package gtk4 was not found in the pkg-config search path.
Package 'gtk4', required by 'virtual:world', not foundこの場合は、次の点を確認します。
- GTK 4パッケージのインストールが完了しているか
- MSYS2 UCRT64ターミナルを使用しているか
- which pkg-configの結果が/ucrt64/bin/pkg-configになっているか
- パッケージ名ではなくgtk4を指定しているか
- インストール後にターミナルを起動し直したか
GTK 4をもう一度確認するには、次のコマンドを実行します。
pacman -S --needed mingw-w64-ucrt-x86_64-gtk4その後、MSYS2 UCRT64を起動し直し、次のコマンドを実行します。
pkg-config --modversion gtk4gtk4-demoが起動しない場合
gtk4-demoを実行しても画面が表示されない場合は、次の順番で確認します。
- which gtk4-demoを実行する
- /ucrt64/bin/gtk4-demoと表示されるか確認する
- GTK 4パッケージを再確認する
- MSYS2 UCRT64ターミナルを起動し直す
- gtk4-demoをもう一度実行する
確認コマンドは次のとおりです。
which gtk4-demo
pacman -S --needed mingw-w64-ucrt-x86_64-gtk4
gtk4-demoDLLが見つからないというエラーが表示される場合は、PowerShellやコマンドプロンプトから起動していないか確認します。
環境構築中は、必要なDLLを見つけられるMSYS2 UCRT64ターミナルからgtk4-demoを起動しましょう。
インストール後のGTK 4を更新する
今後、GTK 4の新しいバージョンが公開されたときは、MSYS2全体の更新によってGTK 4も更新されます。
pacman -SyuGTK 4だけを公式サイトから別にダウンロードして、C:\msys64のファイルへ上書きする必要はありません。MSYS2から導入したGTK 4は、pacmanで管理します。
GTK 4とgtk4-demoの動作を確認できたら、GUI開発に必要な中心部分はそろっています。次はVisual Studio Codeをインストールし、C言語のソースファイルを編集する環境を準備していきます。
