[sisyphus] компиляция программы и файлы *.a

Damir Shayhutdinov =?iso-8859-1?q?lost404_=CE=C1_gmail=2Ecom?=
Ср Окт 18 12:50:28 MSD 2006


> > > Что то не доставил, или не так пересобирал directfb со статикой?
> > Ага, надо добавить -lm к строке линковки. И еще -lsysfs.
> Я в спеке directfb изменил следующие строки:
>
> %configure \
>     --enable-shared \
>     --enable-static=yes \
> и
> %_libdir/lib*.*
> А как нужно было сделать с учётом выше вами сказанного?

Да так и надо было делать скорее всего.

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

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

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

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


Подробная информация о списке рассылки Sisyphus