问题
hi every one i have a program in which i have include
- gtk/gtk.h
- glib.h
i have used commands
sudo apt-get install libgtk2.0-dev glib
sudo apt-get install glade
but still getting error that glib not found ans gtk/gtk.h not found. i am first time using this gtk . no idea how it works how to install it kindly help me thanks
i am doing c programming
回答1:
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.
回答2:
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.
回答3:
Please read the official documentation. It explains how to compile GTK applications.
Basically to compile a hello.c
file to generate a hello
program, you'll type:
gcc `pkg-config --cflags --libs gtk+-2.0` hello.c -o hello
来源:https://stackoverflow.com/questions/5277284/glib-h-and-gtk-h-not-found