LINUX.ORG.RU

NEED HELP WITH GTK+


0

0

Парни! ОЧЕНЬ нужна помощь!
Я уже себе весь мозг поломал :((

Имею установленные glib-2.2.1, pango-1.0, gobject-2.0, gmodule-2.0 в
/usr/local; ldconfig -p - указывает на /usr/local/lib(правый терм)
При сборе GTK+-2.2.1 configure все находит, со всем соглашается,
но когда дело доходит до make - выдает ошибку(левый терм)

В чем может быть проблема( wrong /dev/hands & RTFM не предлагать:))?

Почему при раскрытии -lgobject-2.0 или -lpango-1.0 - идет ссылка на /usr/lib ? Как явно указать на /usr/local/lib ? (править ручками Makefile - не вариант - их там штук 20)

>>> Просмотр (1024x768, 79 Kb)



Проверено: maxcom

А что мешает благородному дону написать
shell> LDFLAGS="-L(путь.к.фолдеру.с.нужной.либой)" ./configire --with-your-parameters
?

MakcuM
()

то есть в твоем случае
shell> LDFLAGS="-L/usr/local/lib" ./configure --lalalalala.....

MakcuM
()

а что, красивый скрин - мне нравится. зелененько так, со вкусом...

anonymous
()

Есть такое явление, когда *.la файлы содержат в dependency_libs= ссылки на несуществующие *.la файлы. Проверь, очень похоже.

Banshee
()

Да ничего не мешает :( Попробую... Просто не понятно мне с этими glib-ами - все указывает на одно место-положение, а при компиляции либы ищутся в совершенно другом :(

Щас вот такая-же фигня с xfce - glib в /usr/lib; /usr/bin/glib-config кажет на /usr/lib - а xfce/configure - найдя glib-config не может найти сами библиотеки

Я вот думаю - может сама идея LFS - порочна :)??

Еще вопрос - почему gtk+ требовал себе Х-инклюды, которых нихрена нету-ти в Х-вой инсталяшке и их приходится лить из CVS:xc/lib/что-там??

delta9
() автор топика

2 Banshee

Нет, мне кажется, это не оно.
Линкер бы тогда ругнулся на Unknown file format

Или я что-то недопонимаю?

MakcuM
()

Оппа.
Заметил "Is not a valid..."
Думаю, что придется ручками линковать.

Только вот почему так -- не понимаю.
У меня совсем недавно gtk 2.x нормально собралась.

А вот с wmaker'ом из cvs'а тоже такие приколы.

MakcuM
()

2MakcuM:

Нет, Вы не правы. Сразу нужно сказать, что ечь идет об использовании libtool-а.

Вот так например выглядит команда для линковки какой то библиотеки libreiser4-plugin

/bin/sh ../libtool --mode=link gcc -g -O2 -D_FILE_OFFSET_BITS=64 -g -W -Wall -Wno-unused -Werror -DPLUGIN_DIR=\"/usr/local/lib/reiser4\" -o libreiser4-plugin.la libheader.la format/format40/libformat40-static.la journal/journal40/libjournal40-static.la alloc/alloc40/liballoc40-static.la oid/oid40/liboid40-static.la node/node40/libnode40-static.la key/key40/libkey40-static.la item/nodeptr40/libnodeptr40-static.la item/direntry40/libdirentry40-static.la item/tail40/libtail40-static.la item/extent40/libextent40-static.la item/stat40/libstat40-static.la file/file40/libfile40-static.la file/dir40/libdir40-static.la file/reg40/libreg40-static.la file/sym40/libsym40-static.la hash/r5_hash/libr5_hash-static.la hash/tea_hash/libtea_hash-static.la hash/rupasov_hash/librupasov_hash-static.la hash/fnv1_hash/libfnv1_hash-static.la sdext/sdext_unix/libsdext_unix-static.la sdext/sdext_lw/libsdext_lw-static.la sdext/sdext_lt/libsdext_lt-static.la sdext/sdext_symlink/libsdext_symlink-static.la libfooter.la

../libtool это шеловый скрипт, который парсит *.la файлы, выковыривает из них правильные быблиотеки, вызывает линкер для сборки libreiser4-plugin.(al|a|so) и строит libreiser4-plugin.la, указывая в зависимостях пеерчисленные библиотеки. Потом в процессе инсталяции, этот libreiser4-plugin.la пересоздается таким образом, чтобы все зависимости указывали на реально существующие библиотеки и другие *.la файлы.

Вот в этот момент, что-то идет не так и зависимости указывают на несуещствующие *.la. Это как то связано с указанием --prefix, --libdir или чего из той же оперы. Может быть на машине стоит несколько версий устанавливаемого вареза, а может libtool старый иил не совместимый с autoconf and friends.

Banshee
()

а в /etc/ldconfig есть строка с /usr/local/lib?

sdk
()

а в /etc/ldconfig есть строка с /usr/local/lib?

sdk
()

2 Banshee, спасибо :)

Сейчас пойду руки выпрямлять да скрипты фиксить :)

MakcuM
()

Вот последний пример -

[root@freesoft xfce-3.8.18]# export CFLAGS="-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/X11R6/include/X11 -I/usr/include/glib-2.0 -I/usr/include/atk-1.0 -I/usr/include/atk-1.0/atk -I/usr/lib/glib-2.0/include"; sh d9_conf.sh && make

....

gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../ -I../libs/ -DXFCE_DIR=\"/usr/local/share/xfce\" -DXFCE_LOCALE_DIR=\"/opt//share/locale\" -DXFCE_CONFDIR=\"/usr/local/etc/xfce\" -I/usr/include/X11 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/X11R6/include/X11 -I/usr/include/glib-2.0 -I/usr/include/atk-1.0 -I/usr/include/atk-1.0/atk -I/usr/lib/glib-2.0/include -Wall -Wno-implicit-int -MT colorselect.lo -MD -MP -MF .deps/colorselect.Tpo -c colorselect.c -fPIC -DPIC -o .libs/colorselect.lo
colorselect.c: In function `open_colorselect':
colorselect.c:95: `GTK_WINDOW_DIALOG' undeclared (first use in this function)
colorselect.c:95: (Each undeclared identifier is reported only once
colorselect.c:95: for each function it appears in.)
make[2]: *** [colorselect.lo] Ошибка 1
make[2]: Выход из каталог `/usr/local/src/xfce-3.8.18/libs'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Выход из каталог `/usr/local/src/xfce-3.8.18'
make: *** [all] Ошибка 2

GCC 3.2
autoconf (GNU Autoconf) 2.53
./libtool (GNU libtool) 1.4.2 (1.922.2.54 2001/09/11 03:33:37)



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

Посмотри повнимательнее на внутреннее содержание файликов *.pc в /usr/lib/pkgconfig или /usr/local/lib/pkgconfig (не знаю, где оно у тебя располагается).

djusha
()

>Еще вопрос - почему gtk+ требовал себе Х-инклюды, которых нихрена нету-ти в Х-вой инсталяшке и их приходится лить из CVS:xc/lib/что-там??

потому что надо X11-devel пакет тоже ставить.

azazello ★★★★
()

смотри, тебе письмо пришло!

kedder
()

2delta9: кому, кому - тебе! :)

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