Windows 下使用 Msys2 编译 GTK3 程序

因为 Glib 包含了许多 C 语言基础数据结构和多线程操作,而且也是比较成熟稳定的,在 Windows 下可以使用 Msys2 来编译 Glib 程序。

首先安装 Msys2, 只要在官网下载就行,双击运行安装。安装完之后首先要更新系统,本身 Msys2 使用了 pacman 包管理器,使用跟 ArchLinux 基本一样。

更新系统:

pacman -Syu

更新完之后不要输入 exit 退出,直接关闭命令行 shell ,再次打开,安装 GTK3:

pacman -S mingw-w64-x86_64-gtk3

安装编译工具,主要是 GCC:

pacman -S mingw-w64-x86_64-toolchain base-devel

示例文件:

#include <glib.h>
#include <gmodule.h>
#include <stdio.h>
#include <stdlib.h>

void main() {
    GList *list = NULL;
    gpointer str = "hello";
    list = g_list_append(list, str);
    printf("%d", g_list_length(list));
}

将 Msys2 shell 切换到源码目录,运行:

gcc `pkg-config --cflags gtk+-3.0` -o app main.c `pkg-config --libs gtk+-3.0`

就会在当前目录下生成 app.exe 文件,在 Msys2 shell 运行 ./app.exe 就会输出 1

注:因为 Windows 本身并没有带 GTK+ runtime, 所以在 Powershell 下执行 .\app.exe 并不会输出任何结果。