[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