[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