Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: gtk  (Прочитано 4527 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DenQ

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
gtk
« : 12 Июня 2010, 09:44:28 »
Ребят, всем доброго времени суток.
Пытаюсь установить gtk/gtk+ но что-то не очень выходит.
Подскажите как правильно, и что нужно прописывать в консольку. :)

А то g++ ругается на:
#include <gtk/gtk.h>и выдает:
ошибка: gtk.h: No such file or directoryчто в общем-то логично :)

Пользователь решил продолжить мысль 12 Июня 2010, 09:52:55:
Помощь более не требуется. Справилсо!  :)
apt-get install libgtk1.2-dev
А потом
#include <gtk-1.2/gtk/gtk.h>Даже не знаю почему gtk.h бал так далеко "засунут" ... Но так вот.
Компиляция:
g++ -Wall -g name.cpp -o name `gtk-config --cflags --libs`
« Последнее редактирование: 12 Июня 2010, 09:52:55 от DenQ »

Оффлайн Sova777

  • Участник
  • *
  • Сообщений: 208
    • Просмотр профиля
    • Несколько слов о NetBeans C/C++ Pack'е
Re: gtk
« Ответ #1 : 12 Июня 2010, 13:43:19 »
Извиняюсь, но gtk+-1.2 - это из 1999 года. Ностальгия замучила? Сейчас пользуются http://packages.ubuntu.com/lucid/libgtk2.0-dev

Писать нужно #include <gtk/gtk.h> и никак иначе
Пользователь OpenSolaris 2008.11, Ubuntu 8.10, Windows XP. Mac OS X не нравится, стараюсь не использовать.

Оффлайн DenQ

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: gtk
« Ответ #2 : 13 Июня 2010, 02:57:20 »
Sova777, спасибо за ответ, просто apt-get посоветовала, вот я и набрал, то что она посоветовала. Сейчас исправил.

Оффлайн Puggy

  • Любитель
  • *
  • Сообщений: 88
    • Просмотр профиля
Re: gtk
« Ответ #3 : 28 Июня 2010, 16:05:01 »
Здравствуйте, руководствовался статьей "Программирование для GTK+" (http://symmetrica.net/uploads/gtk/lesson1.htm)

Установил пакеты в синаптике со всеми зависимостями:
gtk+-devel*
atk-devel*
pango-devel*
libgnome-devel
glade.

kirill@work:~$ pkg-config --libs gtk+-2.0
-pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lcairo -lgio-2.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 

программа из статьи helloworld.c :
(Нажмите, чтобы показать/скрыть)

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

при компиляции выдаёт ошибки:
(Нажмите, чтобы показать/скрыть)

перепроверял наличие пакетов из списка все имеется:
https://forum.ubuntu.ru/index.php?topic=2269.0
(Нажмите, чтобы показать/скрыть)

Как исправить?

Заранее благодарен.

Оффлайн sciko

  • Активист
  • *
  • Сообщений: 854
    • Просмотр профиля
Re: gtk
« Ответ #4 : 28 Июня 2010, 16:23:36 »
Может для начала поучить C/C++? Вот такое меня убивает наповал
Цитировать
GtkWidget * widget

Оффлайн Nattfodd

  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Re: gtk
« Ответ #5 : 28 Июня 2010, 19:37:39 »
Может для начала поучить C/C++? Вот такое меня убивает наповал
Цитировать
GtkWidget * widget
а при чем тут звездочки, если у него

>> helloworld.c:7:21: error: gtk/gtk.h: Нет такого файла или каталога

up. c CodeBlocks скомпилилось, теперь вопрос - каким компилятором он пользуется по дефолту? ибо в геане g++ не видит gtk.h

« Последнее редактирование: 28 Июня 2010, 20:03:46 от Nattfodd »

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: gtk
« Ответ #6 : 28 Июня 2010, 20:20:16 »
Цитировать
up. c CodeBlocks скомпилилось, теперь вопрос - каким компилятором он пользуется по дефолту? ибо в геане g++ не видит gtk.h
Причём здесь геане??? Причтите ман по g++ в особенности про ключик -I вместо того чтобы такую ерунду говорить. Не в компиляторе дело, а в том, где этот хедер лежит, и указанно ли компилятору искать хедеры по этому пути.

Пользователь решил продолжить мысль 28 Июня 2010, 04:23:07:
Цитировать
gcc -Wall helloworld.c -o helloworld `pkg-config
    --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0`
...
--cflags: command not found
что то меня наводит на мысль, что команда была выполнена в консоли именно так как написана на форуме, включая перенос строки и баш проинтерпретировал это как две команды.
« Последнее редактирование: 28 Июня 2010, 20:25:25 от VestniK »

Оффлайн Nattfodd

  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Re: gtk
« Ответ #7 : 28 Июня 2010, 21:50:18 »
все, разобрался, спасибо.

вобщем кому интересно, команда для компиляции:
g++ -Wall -g имя_файла.cpp -o имя_программы `pkg-config --cflags gtk+-2.0 --libs gtk+-2.0`
в Geany прописал вот это:
g++ -Wall -g "%f" -o "%e" `pkg-config --cflags gtk+-2.0 --libs gtk+-2.0`
g++ -Wall -o "%e" "%f" `pkg-config --cflags gtk+-2.0 --libs gtk+-2.0`
« Последнее редактирование: 28 Июня 2010, 22:41:44 от Nattfodd »

Оффлайн Puggy

  • Любитель
  • *
  • Сообщений: 88
    • Просмотр профиля
Re: gtk
« Ответ #8 : 29 Июня 2010, 07:53:53 »
Цитировать
gcc -Wall helloworld.c -o helloworld `pkg-config
    --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0`
...
--cflags: command not found
что то меня наводит на мысль, что команда была выполнена в консоли именно так как написана на форуме, включая перенос строки и баш проинтерпретировал это как две команды.
VestniK да действительно вводил, не учел перенос строки. и что то ему все равно не нравится:
gcc: pkg-config --cflags gtk+-2.0: Нет такого файла или каталога
gcc: pkg-config --libs gtk+-2.0: Нет такого файла или каталога
helloworld.c:7:21: error: gtk/gtk.h: Нет такого файла или каталога
...

Цитировать
g++ -Wall -g имя_файла.cpp -o имя_программы `pkg-config --cflags gtk+-2.0 --libs gtk+-2.0`
Nattfodd благодарю работает! теперь буду разбираться почему в статье gcc написали и не работает..

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: gtk
« Ответ #9 : 29 Июня 2010, 11:17:58 »
что-то ему все равно не нравится:
gcc: pkg-config --cflags gtk+-2.0: Нет такого файла или каталога
gcc: pkg-config --libs gtk+-2.0: Нет такого файла или каталога
helloworld.c:7:21: error: gtk/gtk.h: Нет такого файла или каталога
...

Цитировать
g++ -Wall -g имя_файла.cpp -o имя_программы `pkg-config --cflags gtk+-2.0 --libs gtk+-2.0`
Nattfodd благодарю работает! теперь буду разбираться почему в статье gcc написали и не работает..

pkg-config - это отдельная команда, '--cflags gtk+-2.0 --libs gtk+-2.0' - это ее аргументы, а не gcc.
Она позволяет компактно хранить параметры компилятора и легко переносить их с одного компьютера на другой.
Попробуйте написать pkg-config --cflags gtk+-2.0 --libs gtk+-2.0 - получите просто набор ключей для gcc.

Обратные кавычки (клавиша над Tab) или доллар и скобки вокруг говорят bash-у выполнить сначала эту команду, потом то, что она написала, подставить вместо собственно команды во введенную строку и уже потом выполнять командную строку.

На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн sciko

  • Активист
  • *
  • Сообщений: 854
    • Просмотр профиля
Re: gtk
« Ответ #10 : 29 Июня 2010, 12:41:36 »
Если на * не будет ругаться я буду очень удивлён.

Оффлайн Nattfodd

  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Re: gtk
« Ответ #11 : 29 Июня 2010, 18:15:17 »
Если на * не будет ругаться я буду очень удивлён.
а я был удивлен вашему комментарию :) 3 года кодю на си (правда под виндой), и всю жизнь думал что все равно где ставить звездочку при объявлении указателя.

char* t;
char *t;
char * t;

И таки в линухе тоже нормально компилятся  все 3 варианта ;)

Оффлайн sciko

  • Активист
  • *
  • Сообщений: 854
    • Просмотр профиля
Re: gtk
« Ответ #12 : 30 Июня 2010, 11:06:27 »
Может сейчас уже сменили в стандарте, но раньше char* t; значил указатель на переменную типа char, а char *t; -- указатель типа char.

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: gtk
« Ответ #13 : 30 Июня 2010, 11:47:29 »
Когда это так было, хотелось бы пруфлинк. Я как-то тоже про такое никогда не слышал и сколько с C/C++ работаю всегда не имело никакой разницы к кому звёздочка прилипла.

Оффлайн MaSsoL

  • Активист
  • *
  • Сообщений: 519
    • Просмотр профиля
Re: gtk
« Ответ #14 : 30 Июня 2010, 11:47:37 »
Разницы нет в трех случаях
int* pi;
int * pi;
int *pi;
In Console We Trust!

 

Страница сгенерирована за 0.043 секунд. Запросов: 25.