[devel] heartbeat 2.0.8 и снова --as-need

Damir Shayhutdinov =?iso-8859-1?q?damir_=CE=C1_altlinux=2Eorg?=
Ср Мар 14 12:24:36 MSK 2007


> -funsigned-char -o .libs/atest atest-atest.o
> ../../lib/clplumbing/.libs/libplumb.so ../../lib/pils/.libs/libpils.so
> ../../lib/crm/common/.libs/libcrmcommon.so
> ../../lib/crm/pengine/.libs/libpe_rules.so
> ../../lib/crm/cib/.libs/libcib.so ../../lib/apphb/.libs/libapphb.so
> ../../lib/hbclient/.libs/libhbclient.so -lglib-2.0 -lbz2 -lz -lxml2 -lc
> -luuid -lrt -ldl -lltdl -Wl,--rpath -Wl,/usr/local/lib
> ../../lib/crm/common/.libs/libcrmcommon.so: undefined reference to
> `cl_perror'
> ...
> ../../lib/crm/common/.libs/libcrmcommon.so: undefined reference to
> `cl_log_set_uselogd'
> collect2: ld returned 1 exit status
> gmake[2]: *** [atest] Error 1
> gmake[2]: Leaving directory `/usr/src/RPM/BUILD/heartbeat-2.0.8/crm/crmd'
> gmake[1]: *** [all-recursive] Error 1
> gmake[1]: Leaving directory `/usr/src/RPM/BUILD/heartbeat-2.0.8/crm'
> make: *** [all-recursive] Error 1
>
> Читаю http://lists.altlinux.org/pipermail/sisyphus/2006-July/084838.html
> и делаю:
>
> $ find -name *.so | xargs grep cl_log_set_uselogd
> Binary file ./lib/crm/common/.libs/libcrmcommon.so matches
> Binary file ./lib/clplumbing/.libs/libplumb.so matches
> $ nm -CD lib/crm/common/.libs/libcrmcommon.so | grep cl_log_set_uselogd
>           U cl_log_set_uselogd
> $ nm -CD lib/clplumbing/.libs/libplumb.so | grep cl_log_set_uselogd
> 0000d590 T cl_log_set_uselogd
>
> Итак, вписать надо -lplumb, ищем теперь куда:

Вот тут неправильно. Ведь библиотека, которую нужно прилинковать - не
установлена в системе еще, а находится в каталоге сборки
поэтому надо дописывать не -lplumb, а
$(top_builddir)/lib/clplumbing/libplumb.la (ну или где там находится
libplumb.la относительно каталога с исходниками).


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