SpecTips/kdebuild: различия между версиями
< SpecTips
PhpCoder (обсуждение | вклад) (Import from freesource.info) |
м («Spectips/kdebuild» переименована в «SpecTips/kdebuild»: proper spelling) |
(нет различий)
|
Текущая версия от 18:54, 7 августа 2008
http://lists.altlinux.ru/pipermail/devel/2005-April/020210.html
с появлением в Сизифе kde3.4, программки под kde перестали собираться. симптомы - сборка заканчивается длинной пургой, маленький кусочек которой приведен ниже:
metabar.cpp: undefined reference to `QString::QString(char const*)' .libs/metabar.o(.text+0x7d0):metabar.cpp: undefined reference to `QString::QString(char const*)' .libs/metabar.o(.text+0x808):metabar.cpp: undefined reference to `QString::shared_null' .libs/metabar.o(.text+0x814):metabar.cpp: undefined reference to `QStringData::deleteSelf()' .libs/metabar.o(.text+0x82e):metabar.cpp: undefined reference to `QString::shared_null' .libs/metabar.o(.text+0x83a):metabar.cpp: undefined reference to `QStringData::deleteSelf()' .libs/metabar.o(.text+0x84e):metabar.cpp: undefined reference to `QString::QString(char const*)' .libs/metabar.o(.text+0x860):metabar.cpp: undefined reference to `QString::QString(char const*)'
комментарий:
> По этому поводу мне что-то Zerg рассказывал, но я не понял, и мне > эта затея (собирать незамкнутые разделяемые библиотеки) не > нравится. Zerg, расскажи всем, может тогда станет ясно, что > делать Все, что в /usr/lib/kde3 имеет unresolved symbols для оптимизации, т.к. грузится через lt_dlopen в общее место, где недостающие символы беруться из необходимой, загруженной туда же библиотеки.
ldv@, zerg@
лечится все это помещением в %prep следующего текста:
%__subst "s/\(Wl,--no-undefined\)/-Wl,--warn-unresolved-symbols \1/g" admin/acinclude.m4.in %__subst "s/\-lkdeui/-lkdeui -lpthread/g" admin/acinclude.m4.in %__subst "s/\.la/.so/g" admin/acinclude.m4.in make -f admin/Makefile.common cvs ||:
вторая строчка решает проблемы кривого софта, который не линкуется с libpthread и надеется что за него это сделает libtool (который при отсутствии .la этого не сделает), предпоследняя строчка заодно решает проблему с .la
после этого софт нормально собирается и работает.
Ссылки
http://faq.altlinux.ru/index.php?action=single&qid=206&aid=207