[devel] как правильно слинковать динамическую библиотеку
Sergey Vlasov
=?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Ср Дек 25 20:16:53 MSK 2002
On Wed, 25 Dec 2002 19:48:17 +0300
"Dmitry V. Levin" <ldv на altlinux.org> wrote:
> On Wed, Dec 25, 2002 at 02:53:33PM +0300, Alexey Tourbin wrote:
> > Есть такое дело (lua):
> >
> > %changelog
> > * Tue Dec 24 2002 Alexey Tourbin <at на altlinux.ru> 4.0.1-alt4
> > - error in previous build: *.so files are binary copy of *.so.* files,
> > not symlinks; fixed
> > - really shared build (s/ld -shared/ld -shared -lc/ in alt-soname patch)
>
> И это правильно.
>
> > gcc -o ../../bin/tolua tolua.o tolualua.o -L/usr/lib -L../../lib -ltolua -llua -llualib -lm
> > /usr/lib/liblualib.so: undefined reference to `dlclose'
> > /usr/lib/liblualib.so: undefined reference to `dlopen'
> > /usr/lib/liblualib.so: undefined reference to `dlsym'
> > collect2: ld returned 1 exit status
> >
> > Если же пересобрать lua c s/ld -shared/ld -shared -lc -ldl/, то всё
> > собирается хорошо.
>
> Это неправильно.
А почему неправильно? Ведь, судя по сообщениям, dlopen() используется
именно в liblualib.so.N - почему бы в её зависимости не добавить
libdl.so.2?
Подробная информация о списке рассылки Devel