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