C语言 找不到glib. h和gtk. h

ymdaylpp  于 2023-01-01  发布在  其他
关注(0)|答案(3)|浏览(506)

大家好,我有一个程序,包括以下内容:

  • gtk/gtk.h
  • glib.h

我使用了以下命令:

sudo apt-get install libgtk2.0-dev glib 
sudo apt-get install glade

但是我还是收到glib找不到和gtk/gtk. h找不到的错误,这是我第一次使用gtk,我不知道它是怎么工作的,也不知道如何安装。

7hiiyaii

7hiiyaii1#

您应该使用的命令(在linux/gtk的最新版本中)是pkg-config,而不是gtk-config。gtk-config是为gtk 2.0之前的开发而设计的。
假设您正在编译的文件名为foo. c,要在gtk-2.0下编译它,您可以在命令行中使用以下命令:

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

这应该编译,并给予你一个文件foo,可以执行。
但说真的,使用makefile,因为这东西是一个痛苦的继续键入。我会写出一个示例makefile,但有规则需要遵循的格式,使它很难在编辑器窗口键入。

# Sample Makefile
CFLAGS := $(shell pkg-config --cflags glib-2.0 gtk+-2.0)
LDFLAGS := $(shell pkg-config --libs glib-2.0 gtk+-2.0)

foo: foo.c
<TAB HERE NOT SPACES>$(CC) $(CFLAGS) $< -o $@ $(LDFLAGS)

这定义了一个简单的规则,即要创建foo,它依赖于foo. c,因此如果foo. c比foo更新,它将被重新构建。在我写'TAB HERE NOT SPACES'的地方,它 * 必须 * 是制表符,并且不能是一组空格字符。

ki1q1bka

ki1q1bka2#

键入“locate glib.h”来确定文件的位置(假设是当代的linux发行版--你的帖子没有提供太多信息)。
然后确保在Makefile中正确指定了glib. h的路径。(您确实有一个Makefile,不是吗?)对gtk. h执行相同的步骤。

rqmkfv5c

rqmkfv5c3#

请阅读官方文档,它解释了how to compile GTK applications。基本上,要编译hello.c文件以生成hello程序,您需要键入:

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

相关问题