LINUX.ORG.RU

Подключение заголовочного файла gtk/gtk.h

 , , ,


1

1

В деле создания проектов на C я совсем новичок, поэтому не судите строго. В общем, при включении в код строчки

#include <gtk/gtk.h>

компилятор выдаёт ошибку

error: gtk/gtk.h: No such file or directory

Покопавшись по интернетам, узнал, что компилировать надо с использованием pkg-config:

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

Покопавшись ещё больше, выяснил, что более правильный способ — создать Makefile. Правильно ли я понял, что там помимо всего прочего прописываются заголовочные файлы? Подскажите простейший вариант Makefile'а для моего хеллоуворлда из одного файла main.c + GTK-шные библиотеки.

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 3)

main.c:

#include <gtk/gtk.h>

void
hello (void)
{
  g_print ("Hello World\n");
}

void
destroy (void)
{
  gtk_main_quit ();
}

int
main (int argc, char *argv[])
{
  GtkWidget *window;
  GtkWidget *button;

  gtk_init (&argc, &argv);

  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_signal_connect (GTK_OBJECT (window), "destroy",
		      GTK_SIGNAL_FUNC (destroy), NULL);
  gtk_container_border_width (GTK_CONTAINER (window), 10);

  button = gtk_button_new_with_label ("Hello World");

  gtk_signal_connect (GTK_OBJECT (button), "clicked",
		      GTK_SIGNAL_FUNC (hello), NULL);
  gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
			     GTK_SIGNAL_FUNC (gtk_widget_destroy),
			     GTK_OBJECT (window));
  gtk_container_add (GTK_CONTAINER (window), button);
  gtk_widget_show (button);

  gtk_widget_show (window);

  gtk_main ();

  return 0;
}

Makefile:

CFLAGS+=`pkg-config --cflags gtk+-2.0`
LDFLAGS+=`pkg-config --libs gtk+-2.0`

Компилировать так:

make main

А вообще посоветую не прогулив^W^W почитать про утилиту make

theNamelessOne ★★★★★
()
Ответ на: комментарий от anonymous

А может лучше не прогуливать уроки?

Я уже заканчиваю 4-й курс физфака, и программирование — не моя специальность.

eugeno ★★★★★
() автор топика
6 января 2013 г.
19 февраля 2014 г.

На, Makefile

CFLAGS+=`pkg-config --cflags gtk+-2.0`
LDFLAGS+=`pkg-config --libs gtk+-2.0`

all : main

main : main.o

Dron ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.