[devel] C++ libraries linking

Michael Shigorin =?iso-8859-1?q?mike_=CE=C1_osdn=2Eorg=2Eua?=
Вт Авг 7 00:07:51 MSD 2007


On Mon, Mar 20, 2006 at 10:29:56PM +0200, Igor Vlasenko wrote:
> борясь с --as-needed в одном кривом софте (yacas), 
> заметил, что его библиотеки имеют undefined symbols из
> libstdc++, и действительно, линкуются gcc:

О, а я сегодня по старой памяти и поводу в виде 1.1.0 попробовал
его упакетить.  Спек в аттаче, итог сборки таков:

/bin/sh ../libtool --mode=link g++  -pipe -Wall -O2 -march=athlon -mtune=athlon-xp -Wall    -o yacas  yacasmain.o unixcommandline.o stdcommandline.o libyacasnumbers.la libyacas.la libyacasplatform.la ../libltdl/libltdlc.la -lm 
g++ -pipe -Wall -O2 -march=athlon -mtune=athlon-xp -Wall -o .libs/yacas yacasmain.o unixcommandline.o stdcommandline.o  ./.libs/libyacasnumbers.so ./.libs/libyacas.so ./.libs/libyacasplatform.so ../libltdl/.libs/libltdlc.a -ldl -lm
./.libs/libyacas.so: undefined reference to `sqrt'
./.libs/libyacas.so: undefined reference to `tan'
./.libs/libyacas.so: undefined reference to `asin'
./.libs/libyacas.so: undefined reference to `log'
./.libs/libyacas.so: undefined reference to `atan'
./.libs/libyacas.so: undefined reference to `fmod'
./.libs/libyacas.so: undefined reference to `acos'
./.libs/libyacas.so: undefined reference to `exp'
./.libs/libyacas.so: undefined reference to `sin'
./.libs/libyacas.so: undefined reference to `pow'
./.libs/libyacas.so: undefined reference to `cos'

> gcc -shared  .libs/deffile.o ...
> ./.libs/libyacasnumbers.so ./.libs/libyacasplatform.so -lm -ldl
> -march=athlon -Wl,--as-needed -Wl,-soname -Wl,libyacas.so.0 -o
> .libs/libyacas.so.0.0.0
> 
> однако это получается из
> 
> ../libtool --mode=link g++ -pipe -Wall -O2 -march=athlon -Wall 
> -Wl,--as-needed -o libyacas.la -rpath /usr/lib deffile.lo ...
> ... <other>.lo libyacasnumbers.la libyacasplatform.la -lm -ldl
> 
> где явно указан g++.
> 
> Кто знает в чем причина?

-- 
 ---- WBR, Michael Shigorin <mike на altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/



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