[devel] как правильно слинковать динамическую библиотеку

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Ср Дек 25 19:48:17 MSK 2002


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/, то всё
> собирается хорошо.

Это неправильно.

> И
> gcc -o ../../bin/tolua tolua.o tolualua.o -L/usr/lib -L../../lib -ltolua -llua -llualib -lm -ldl
> тоже собирается хорошо.

А вот это правильно.

> А вопрос такой: какую бы мне доку прочитать, чтобы до конца разобраться,
> как это всё правильно должно подцепляться.

info ld, на тему "-shared".
Advanced reading: http://people.redhat.com/drepper/dsohowto.pdf


--
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20021225/c3ec112a/attachment-0001.bin>


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