[devel] Linkinkg problem

Evgenii Terechkov =?iso-8859-1?q?evg_=CE=C1_altlinux=2Eru?=
Вс Мар 4 18:46:02 MSK 2007


"Damir Shayhutdinov" пишет:

>> ccache g++ audaciousplugin2.o audaciousinterface.o clientstubbase.o libimmscore.a  `pkg-config audacious glib --libs` -lglib \
>>         -L. -lXss -lXext -lX11 -lpcre -lsqlite3 -lz  -ltag -L/usr/X11R6/lib \
>>         -shared -Wl,-z,defs,-soname,libaudaciousimms2.so -o libaudaciousimms2.so
>> audaciousinterface.o: In function `about':
>> bmpinterface.c:(.text+0x74): undefined reference to `xmms_show_message'
>> collect2: ld returned 1 exit status
>> make[1]: *** [libaudaciousimms2.so] Error 1
>> make: *** [all] Error 2
>>
>> Я в смущений: на случай с --as-needed это вроде не похоже (все объектники
>> находятся до бибилиотек), нужный инклуд в bmpinterface.c присутствует
>> (зависит от -DAUDACIOUS), -laudacious тоже в наличий. Практически каждый из
>> плагинов пакета audacious-plugins успешно использует тот же самый
>> xmms_show_message (правда, почему-то, ни один не слинкован с
>> libaudacious.so). В чём фишка?
> Hint: а в какой библиотеке находится символ xmms_show_message? Вот ее
> то и надо добавить в линковку.

Это я как бы в теорий тоже знаю. Но тут и начинается самое забавное:

~$ findsym xmms_show_message
/usr/lib/libxmms.so.1: 00009f39 T xmms_show_message
~$ R -qf /usr/lib/libxmms.so.1
libxmms-1.2.10-alt12

Это не то, что нам нужно.

~$ nm ~/RPM/BUILD/audacious-1.3.0/src/audacious/audacious G xmms_show_mess
0808c3fd T xmms_show_message
~$ strings /usr/bin/audacious G xmms_show_messa
xmms_show_message
~$ R -qa G audacio
libaudacious-devel-1.3.0-alt1
audacious-plugins-1.3.0-alt1
audacious-1.3.0-alt1
libaudacious-1.3.0-alt1
audacious-itouch-0.1.1-alt1

И как же с этим чудом линковать? Или это я так криво собрал это чудо?
Странно, audacious-plugins же собрались и работают.

-- 
Терешков Евгений, ALT Linux Team.


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