LINUX.ORG.RU

Как сделать программу для GNOME


0

0

Здравствуйте! Я сейчас осваиваю азы программирования (нужна простая, но специфическая программа). В Windows я уже удачно собрал несколько программ на C++, а в Linux еще ничего не скомпилировано. Учебников в свободном доступе, безусловно, много, но у меня техническая проблема:

я установил все девелоперские пакеты, но в файлах *.h, нужных для разработки программ в GNOME везде прописан не тот путь. К примеру, возникает такая ошибка при компиляции:

/opt/gnome/include/gtk-2.0/gtk/gtk.h:73:29: error: gtk/gtkeditable.h: Нет такого файла или каталога

Понятно, что на самом деле вместо "gtk/gtkeditable.h" должно быть указано "/opt/gnome/include/gtk-2.0/gtk/gtkeditable.h", но исправлять все вручную нереально. Может быть, можно как-нибудь прописать переменную, задающую пути?

man gcc на предмет опции -I (большое английское "ай")

gcc -I/opt/gnome/include/gtk-2.0/

rab_boziy
()

#include "generatorglukoff.h"

void main () {

return grust'().

}

vilfred ☆☆
()

Вроде, программка есть - pkg-config. Можно при передаче путей в gcc, заключая эту прогу в апострофы, передавать пути не зная их.

hibou ★★★★★
()

export НОВАЯ_ПЕРЕМЕННАЯ="путь" -- создание новой переменной, действительна только в той консоли, в которой она создана echo $НОВАЯ_ПЕРЕМЕННАЯ -- проверка, что она вообще появилась

компиль дальше....

обычно вся инфа с инклудниками указывается в мэйкфайле или в конфигуре...

ищи в них переменные INCLUDE_DIR

А вообще опция -I используется для указания инклудника.

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

> Вроде, программка есть - pkg-config. Можно при передаче путей в gcc, заключая эту прогу в апострофы, передавать пути не зная их.

Она просто возвращает нужные ключи для компилятора:
al@gaa:~$ pkg-config --cflags --libs fuse
-D_FILE_OFFSET_BITS=64 -I/usr/include/fuse -pthread -lfuse -lrt -ldl

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

> Ну так это ведь и надо, нет?

Ну я просто расписал что она делает

gaa ★★
()

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/gnome/lib/pkgconfig
gcc -Wall `pkg-config --cflags --libs gtk+-2.0` main.c -o main

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

> А ты думаешь, что я не стебусь? ;)

По ссылке толстовато, но что-то есть. ;-)

Bohtvaroh ★★★★
()

Мне кажется вопрос неверно поставлен... GNOME - это среда, GTK-тулкит. Если планируешь писать именно под гном, то тебе придется (на базе GTK-тулкита) писать приложение, которое будет в какой-то мере интегрирована в эту среду. Вот взять самый простой пример... для хранения настроек воспользоваться gconf.

Deleted
()
Ответ на: комментарий от Deleted

> Вот взять самый простой пример... для хранения настроек воспользоваться gconf.

Ещё переставить кнопочки местами и выкинуть добрую половину настроек :)

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

>Ещё переставить кнопочки местами и выкинуть добрую половину настроек :)

не перегибай палку, есть HIG, там все нормально описано. Более того, те же KDE-шники сейчас свой ифейс по тому же хигу ваяют.

Deleted
()
Ответ на: комментарий от Deleted

>> Ещё переставить кнопочки местами и выкинуть добрую половину настроек :)

> не перегибай палку, есть HIG, там все нормально описано.

Что описано? То, что текстовый процессор(!) должен ограничиться тремя табами по 7 настроек на каждом? Это я про abiword.

> Более того, те же KDE-шники сейчас свой ифейс по тому же хигу ваяют.

Тем хуже для них.

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