[devel] Q: linker & -z defs
Dmitry V. Levin
ldv на altlinux.org
Сб Апр 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
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 189 байтов
Описание: отсутствует
Url : http://lists.altlinux.ru/pipermail/devel/attachments/20050402/c7bc7d20/attachment.bin
Подробная информация о списке рассылки Devel