Фатальная ошибка: gtk/gtk.h: нет такого файла или каталога
Я знаю, что на этот вопрос отвечали несколько раз, я пробовал каждый из них, но все еще не мог найти точное решение. Я начинаю изучать GTK + 3.0 с Glade User Interface. Я знаю, что Глейд сгенерирует XML для дизайна, и тот же XML можно использовать в нашей программе c/cpp. Но для выполнения программы необходимо установить все библиотеки или указать путь к библиотекам в IDE. Я использую Anjuta IDE для разработки этой программы всякий раз, когда я пытался собрать программу, я получаю следующую ошибку.
gtk/gtk.h: No such file or directory
Код программы
#include <gtk/gtk.h>!
#include <glade/glade.h>
void
ok_button_clicked (GtkWidget *widget, gpointer user_data)
{
printf ("Thanks for trying out my program.\n");
gtk_main_quit ();
}
int main (int argc, char *argv[])
{
GladeXML *main_window;
GtkWidget *widget;
gtk_init (&argc, &argv);
/* load the interface */
main_window = glade_xml_new ("example-1.glade", NULL, NULL);
/* connect the signals in the interface */
/* Have the ok button call the ok_button_clicked callback */
widget = glade_xml_get_widget (main_window, "OKButton");
g_signal_connect (G_OBJECT (widget), "clicked",
G_CALLBACK (ok_button_clicked),
NULL);
/* Have the delete event (window close) end the program */
widget = glade_xml_get_widget (main_window, "MainWindow");
g_signal_connect (G_OBJECT (widget), "delete_event",
G_CALLBACK (gtk_main_quit), NULL);
/* start the event loop */
gtk_main ();
return 0;
}
Всякий раз, когда я пытаюсь добавить Lib или External Lib, я не могу добавить gtk/gtk.h
файл, тот же файл уже есть в /usr/include/gtk-3.0/gtk/gtk.h
и когда я пытаюсь скопировать то же самое в libanjuta
тот же код по-прежнему выдает ту же ошибку, любая помощь будет высоко оценена друзьями, я изо всех сил стараюсь выполнить программу..
Спасибо Амул Бхатия
1 ответ
Если вы просто хотите скомпилировать его и запустить, кроме создания make-файла
сохраните этот файл в ссылке рядом с вашим файлом foobar.c как example-1.glade
https://github.com/interval1066/XFC/blob/master/examples/glade/example-1/example-1.glade
и откройте терминал и перейдите в каталог, содержащий foobar.c и example-1.glade и введите эту строку
gcc -o foobar foobar.c `pkg-config --cflags --libs libglade-2.0`
и запустить бинарный файл
./foobar
Или, если вы настаиваете на компиляции с makefile, замените ваш makefile на этот
## Created by Anjuta
CC = gcc
CFLAGS = -g -Wall
OBJECTS = foobar.o
INCFLAGS =
LDFLAGS = -Wl,-rpath,/usr/local/lib
LIBS =$(shell pkg-config gtk+-2.0 libglade-2.0 --libs)
GTKFLAGS=-export-dynamic `pkg-config --cflags --libs libglade-2.0 `
all: foobar
foobar: $(OBJECTS)
$(CC) -o foobar $(OBJECTS) $(LDFLAGS) $(LIBS)
.SUFFIXES:
.SUFFIXES: .c .cc .C .cpp .o
.c.o :
$(CC) -o $@ -c $(CFLAGS) $< $(INCFLAGS) $(GTKFLAGS)
count:
wc *.c *.cc *.C *.cpp *.h *.hpp
clean:
rm -f *.o
.PHONY: all
.PHONY: count
.PHONY: clean
Я протестировал выше инструкции в моей системе, она работает.