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

时间:2016-09-01 08:22:23

标签: gtk gtk3 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

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

2 个答案:

答案 0 :(得分:2)

gtk3 tutorial site

并阅读gcc选项。

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

答案 1 :(得分:-1)

在开始时(使用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)之后,我仍然可以编译程序,但是由于zlib1.dll的错误,它们没有运行。

消息是

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