【问题标题】:How to use GTK C library?如何使用 GTK C 库?
【发布时间】:2016-12-02 18:44:36
【问题描述】:

我是 C 的新手,开始学习如何创建 GUI。 出于某种原因,程序运行的唯一方式是

 gcc simple.c -o simple -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0 -pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12

如果我只是运行gcc simple.c它会给我

In file included from /usr/include/glib-2.0/glib/galloca.h:32:0,
             from /usr/include/glib-2.0/glib.h:30,
             from /usr/include/glib-2.0/gobject/gbinding.h:28,
             from /usr/include/glib-2.0/glib-object.h:23,
             from /usr/include/glib-2.0/gio/gioenums.h:28,
             from /usr/include/glib-2.0/gio/giotypes.h:28,
             from /usr/include/glib-2.0/gio/gio.h:26,
             from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
             from /usr/include/gtk-2.0/gdk/gdk.h:32,
             from /usr/include/gtk-2.0/gtk/gtk.h:32,
             from graphical.c:1:/usr/include/glib-2.0/glib/gtypes.h:32:24: fatal error: glibconfig.h: No such file or catalog compilation terminated.

如果我采用其他“传统”方式来包含 lib:

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

它给了我:

Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc' to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found
graphical.c:1:21: fatal error: gtk/gtk.h: No such file or catalog

包含 GTK 的正确方法是什么?

【问题讨论】:

  • 您的第一个示例尝试使用 GTK+ 3 构建,您的第二个示例尝试使用 GTK+ 2 构建。您需要选择一个。
  • 那就试试gcc `pkg-config gtk+-3.0 --cflags` example.c -o example `pkg-config gtk+-3.0 --libs`
  • 那你还没有安装 GTK+ 3 包。你用的是什么开发环境? MSYS2?
  • 对不起;我将此混淆为另一个问题。很奇怪你没有 pkg​​-config 文件。 $PKG_CONFIG_PATH 是否被覆盖?

标签: c gtk


【解决方案1】:

我只是想出了问题所在。 我安装了 linuxbrew 并且出于某种原因 pkg-config 从其中一个存储库中获取了路径,即使我强制它导出也是如此。 我完全删除了 linuxbrew,现在它终于可以工作了! ??:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 2011-03-08
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    相关资源
    最近更新 更多