[devel] C++ libraries linking

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


On Mon, Aug 06, 2007 at 11:48:54PM +0300, Igor Zubkov 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'
> И что здесь не понятно? -lm должно быть до бинари. Патч прислать?

Да вот что-то читал-читал сегодня UpStream/AsNeeded,
втыкал-втыкал в лог, и окромя того, что наблюдается
недолинкованный .libs/libyacas.so, а с самой строчкой
всё в порядке -- ничего не заметил.

Об этой же проблеме Дима тогда же прошлым мартом здесь и говорил
(~s linking).

-- 
 ---- WBR, Michael Shigorin <mike на altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/
----------- следующая часть -----------
Name: yacas
Version: 1.1.0
Release: alt1

Summary: Yet Another Computer Algebra System
License: GPL
Group: Sciences/Mathematics

URL: http://yacas.sourceforge.net
Source: http://yacas.sourceforge.net/backups/%name-%version.tar.gz
Packager: Michael Shigorin <mike на altlinux.org>

%description
Yacas (Yet Another Computer Algebra System) is a small and highly flexible
computer algebra language. The syntax uses a infix-operator grammar parser.
The distribution contains a small library of mathematical functions, but its
real strength is in the language in which you can easily write your own
symbolic manipulation algorithms. It supports arbitrary precision arithmetic.

%prep
%setup
subst 's,LDFLAGS=\(.*\)\$LDFLAGS\(.*\(LIBS\|-l\).*\),LIBS=\1$LIBS\2,' configure.*

%build
autoreconf -fisv
CXXFLAGS="%optflags" %configure --enable-gmp
%make_build

%install
%make_install

%files
%doc docs/*.html docs/*.gif
%_bindir/%name
%_datadir/%name/

%changelog
* Mon Aug 06 2007 Michael Shigorin <mike на altlinux.org> 1.1.0-alt1
- built for ALT Linux
- the history should be *much* longer, it's just not there. :)


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