[devel] Linkinkg problem
Evgenii Terechkov
=?iso-8859-1?q?evg_=CE=C1_altlinux=2Eru?=
Вс Мар 4 15:31:13 MSK 2007
Приветствую!
Вот возникла непонятная (для меня) проблема с линковкой:
Собрал audacious-1.3.0 (для чего пришлось собрать и libmcs) и
audacious-plugins-1.3.0 к нему. Всё вроде б/м работает. Но не собирается
то, ради чего всё и затевалось: audacious-imms (imms-3.1.0-rc1, поддержка
audacious экспериментальная). Всё оканчивается на стадий линковки
объектников, таким образом:
ccache gcc -pipe -Wall -O2 -march=pentium3 -mtune=pentium4 `pkg-config audacious --cflags` -I../clients/xmms/ -DAUDACIOUS -O3 -Wall -fPIC -D_REENTRANT -I../ -I../immscore -I../clients -c ../clients/bmp/bmpinterface.c -o audaciousinterface.o
ccache g++ -pipe -Wall -O2 -march=pentium3 -mtune=pentium4 -fno-rtti -O3 -Wall -fPIC -D_REENTRANT -I../ -I../immscore -I../clients -c ../clients/clientstubbase.cc -o clientstubbase.o
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). В чём фишка?
--
Терешков Евгений, ALT Linux Team.
Подробная информация о списке рассылки Devel