如何使用 msys2 构建 GTK3 应用程序?

How to build a GTK3 application with msys2?

我已经安装了 msys2 和 mingw-gcc,gtk3 包。

pacman -S mingw-w64-i686-toolchain
pacman -S mingw-w64-i686-gtk3

然后我尝试构建一个测试代码。

// main.c
#include <stdio.h>
#include <gtk\gtk.h>

int main()
{
    printf("hello, msys2!");
    return 0;
}

但此测试代码并未构建错误。

main.c:2:21: fatal error: gtk\gtk.h: No such file or directory

我检查了 gtk.h 的位置并进行了修复和重建。

// #include <gtk\gtk.h> -> #include <gtk-3.0\gtk\gtk.h>
C:/msys32/mingw32/include/gtk-3.0/gtk/gtk.h:30:21: fatal error: gdk/gdk.h: No such file or directory

我想这是我不知道的错误。

gtk3 tutorial site.

并阅读 gcc 选项。

gcc `pkg-config --cflags gtk+-3.0` -o example-0 example-0.c `pkg-config --libs gtk+-3.0`

一开始(使用 MSYS2 编译)我遇到了与使用以下命令(或类似命令)所建议的相同的问题和过程:

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

但是错误消息仍然存在...所以经过一些互联网研究后,我发现我必须输入(在我的情况下)以下命令:

export PKG_CONFIG_PATH=/mingw32/lib/pkgconfig

export PKG_CONFIG_PATH=/mingw64/lib/pkgconfig

他们使用之前引用的编译命令,然后事情开始变得更好 运行 我能够编译和 运行 我的程序。

可悲的事情(其中之一)是我每次重新启动 MSYS2 时都必须执行此过程。我采纳了不再需要这样做的建议:-)

另一件令人遗憾的事情是,在重新安装新版本的 MSYS2(和我计算机中的 Codeblocks)之后,我仍然能够编译程序,但是由于错误 运行ning zlib1.dll.

消息是

"The procedure entry point inflateReset2 could not be located in 
the dynamic link library zlib1.dll"