[devel] --as-needed

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Вт Май 23 02:36:05 MSD 2006


On Tue, May 23, 2006 at 02:20:35AM +0400, Vitaly Lipatov wrote:
> On Monday 22 May 2006 03:37, Dmitry V. Levin wrote:
> > On Mon, May 22, 2006 at 03:26:24AM +0400, Vitaly Lipatov wrote:
> > > On Tuesday 28 March 2006 02:50, Dmitry V. Levin wrote:
> > > ...
> > >
> > > > > > $ gcc -Wall foo3.c -o foo3 -L. -lfoo2 -lfoo1
> > > > > > /usr/bin/ld: warning: libfoo1.so, needed by
> > > > > > ./libfoo2.so, not found (try using -rpath or
> > > > > > -rpath-link) ./libfoo2.so: undefined reference to
> > > > > > `foo1'
> > > > > > collect2: ld returned 1 exit status
> > > > > >
> > > > > > Я пока что не знаю, это фича или нет.  Скоро ситуация
> > > > > > прояснится.
> ...
> > Это длительный процесс, постепенно фиксим и upstream'им.
> >
> > > Натолкнулся на пакеты, которые НЕ ищут библиотеки в
> > > каталогах, указанных параметром -L.
> >
> > Не понял, кто что не ищет?  Параметр -L определяет каталоги
> > для поиска, а не библиотеки для линковки.
> Да. Насколько я понимаю, через -L указывается каталог где лежит 
> libfoo.so, а потом -lfoo подключает эту библиотеку к линковке.
> И это не работает :) 
> Разве не об этом речь в проблеме, показанном вами выше
> ( $ gcc -Wall foo3.c -o foo3 -L. -lfoo2 -lfoo1 ) ?

Нет, не об этом.  Параметр -L определяет каталоги для поиска библиотек,
которые указаны в форме -lfoo.  В том примере, который я приводил,
библиотека ./libfoo2.so уже была слинкована с libfoo1.so.
Параметр -L не влияет на поиск библиотек, с которыми файл уже слинкован.


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


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