LaWars: различия между версиями

Материал из ALT Linux Wiki
м (+категории)
Нет описания правки
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
[[Category:Devel]]
[[Category:Devel]]
[[категория:Программисту]]
[[категория:KDE]]


{{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/LaWars}}
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/LaWars}}
Строка 38: Строка 36:
чем линкуется исполняемый файл.</pre>
чем линкуется исполняемый файл.</pre>
''damir@''
''damir@''
{{Category navigation|title=KDE|category=KDE|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Программисту|category=Программисту|sortkey={{SUBPAGENAME}}}}

Текущая версия от 13:30, 2 июля 2015


Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Из FAQ:

Сборка некоторых приложений, как правило, разработанных для KDE, завершается ошибкой "in the prefix, you've chosen, are no KDE libraries installed. This will fail.", хотя пакет kdelibs-devel установлен. Кроме того, могут выводиться сообщения об отсутствии некоторых файлов .la, например, libkdecore.la или libkdefx.la.

Для устранения этой ошибки выполните команду subst 's,\.la\>,.so,' configure либо же subst 's,\.la\>,.so,' admin/acinclude.m4.in Во втором случае необходимо после выполнения команды пересоздать скрипт configure командой make -f admin/Makefile.common

Кроме того, может быть необходимо выполнить аналогичные замены '.la' на '.so' в файлах Makefile.in перед выполнением скрипта configure.

В большинстве случаев помогает:
grep -ERl '\.la' . |xargs subst 's@\.la@.so@g'
в каталоге проекта...

// Eugene Ostapets

Если в приложении есть свои библиотеки, то надо аккуратнее пользоваться grep -ERl '\.la' . |xargs subst 's@\.la@.so@g', а именно заменять символы только в Makefile'ах.

Просто для .so файлов их зависимости хранятся в самом файле (NEEDED в
ELF), а для .a файлов их негде хранить, поэтому приходится всякие -lm
и -lsysfs добавлять не к строчке линковки библиотеки, а к строчке
линковки исполняемых файлов, линкуемых со статическими библиотеками.

Что вы линкуете с libdirectfb_fbdev.a ? Вот туда и надо добавлять.

Вообще для этих целей и создавался формат libtool library (.la).  В
него как раз заносятся все зависимости как для статических, так и для
динамических либ. Но в Альте .la не используются, так как все
динамикой собирается.

Поэтому всем кто собирает статикой приходится закрывать unresolved
symbols собственноручно, добавляя нужные -lчто-то там в список того, с
чем линкуется исполняемый файл.

damir@