Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

glib.h and gtk.h not found

Tags:

c

linux

gtk

glib

gtk2

Hi everyone I have a program with the following includes:

  • gtk/gtk.h
  • glib.h

I have used the commands:

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

But I am still getting the error that glib was not found and gtk/gtk.h was not found. It's the first time I am using gtk and I have no idea how it works or how to install it.

like image 644
tariq Avatar asked Dec 18 '25 19:12

tariq


2 Answers

The command you're supposed to use (in more recent releases of linux/gtk) is pkg-config, not gtk-config. gtk-config is intended for pre 2.0 gtk development.

Consider the file you're compiling is called foo.c, to compile it under gtk-2.0, you would use, from the command line the command:

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

This should compile, and give you a file foo, that can be executed.

but really, use a makefile, as this stuff is a pain to keep typing. I would write out a sample makefile, but there are rules that need to be followed in the formatting of them that makes it difficult to type in the editor window.

# 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)

This defines a simple rule saying to make foo, it depends on foo.c, so of foo.c is newer than foo, it will be rebuilt. Where I write 'TAB HERE NOT SPACES' it must be a tab character, and cannot be a set of space characters.

like image 148
Petesh Avatar answered Dec 21 '25 10:12

Petesh


type "locate glib.h" to determine file's location (assuming a contemporary linux distribution - your post doesn't provide much information).

Then ensure the path to glib.h is properly specified in your Makefile. (You do have a Makefile, don't you?) Perform the same steps for gtk.h.

like image 43
Throwback1986 Avatar answered Dec 21 '25 10:12

Throwback1986