Фатальная ошибка: 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

Я протестировал выше инструкции в моей системе, она работает.

Другие вопросы по тегам