[devel] Q: linker & -z defs

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Сб Апр 2 18:52:07 MSD 2005


Hi,

On Sat, Apr 02, 2005 at 12:48:31AM +0400, Anton D. Kachalov wrote:
> Наткнулся на такую неприятность с pkgconfig + gtk+-2.0.
> $ pkg-config --libs "gtk+-2.0"
> -lgtk-x11-2.0
> 
> $ gcc -shared -o foobar.so -Wl,-z,defs foobar.c -lgtk-x11-2.0
> /tmp/ccML0lkr.o(.text+0x7): In function `foobar':
> : undefined reference to `gdk_x11_display_get_xdisplay'
> collect2: ld returned 1 exit status
> 
> файл foobar.c:
> <кусь>
> extern void gdk_x11_display_get_xdisplay();
> 
> void foobar()
> {
>     gdk_x11_display_get_xdisplay();
> }
> </ьсук>
> 
> если линковаться так:
> $ gcc -shared -o foobar.so foobar.c -lgtk-x11-2.0
> или так:
> $ gcc -shared -o foobar.so -Wl,-z,defs foobar.c -lgtk-x11-2.0 -lgdk-x11-2.0
> то всё пучком.
> 
> Вопрос в следующем, кто неправ?

Обобщённое правило:
Если
ldd -r /usr/lib/libgtk-x11-2.0.so
найдёт что-нибудь undefined, значит, надо фиксить эту библиотеку.
Если не найдёт, значит, фиксить надо твой makefile.


-- 
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/20050402/c7bc7d20/attachment-0001.bin>


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