[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