【问题标题】:How to build a GTK3 application with msys2?如何使用 msys2 构建 GTK3 应用程序?
【发布时间】:2017-01-09 00:44:56
【问题描述】:

我已经安装了 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

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

【问题讨论】:

  • 我也有同样的问题 :-(.

标签: gtk gtk3 msys2


【解决方案1】:

gtk3 tutorial site

并读取 gcc 选项。

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

【讨论】:

  • 下载“pkg-config”,现在我应该把你带来的文件放在哪里?因为当我使用这条指令时,终端会欺骗我:“没有 sush 目录”
【解决方案2】:

一开始(使用 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(和我计算机中的代码块)后,我仍然能够编译程序,但是由于 zlib1.dll 错误,它们无法运行。

消息是

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

【讨论】:

  • 我记得运行这个命令来检查包的存储位置:
  • 查找/-name *.pc
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-14
  • 2019-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-17
相关资源
最近更新 更多