ALT Linux Community general discussions
 help / color / mirror / Atom feed
From: Alexey Novikov <shader@yandex.ru>
To: community@lists.altlinux.org
Subject: [Comm] libtool need help
Date: Tue, 31 Oct 2006 09:33:15 +0300
Message-ID: <20061031063315.GA25448@localhost.localdomain> (raw)

Доброго времени суток всем!

Обращаюсь за помощью к сообществу, т.к. я уже весь мозг сломал :)

Вкратце опишу ситуацию:
Есть некоторый проект (gdal-1.3.2) в результате сборки которого
получается libgdal.so.X.Y.Z и несколько утилит ее использующих.
Внутри себя он таскает исходники библиотеки shapelib, которую
можно использовать для сборки других пакетов (например postgis).
Так вот задача, собрать shapelib из gdal в отдельную shared-либу,
а libgdal прилинковать к ней. Первая часть этой задачи получается
достаточно легко и с ней проблем нет, а вот со второй...

Вобщем, вытащил я исходники shapelib в отдельный каталог, собрал
с помощью следующих
configure.in:
-----------
AC_INIT(shapefil.h)
AM_INIT_AUTOMAKE(shapelib, 1.0.1)
AC_PROG_CC
AM_PROG_LIBTOOL
AC_OUTPUT(Makefile)
-----------
и Makefile.am:
-----------
lib_LTLIBRARIES=libshp.la
libshp_la_SOURCES = dbfopen.c shpopen.c shptree.c
libshp_la_LDFLAGS = -version-info 1:1:0
-----------
ну дальше как обычно
autoreconf -fisv
./configure
make

Дальше, для того, чтобы прилинковать ее к libgdal, добавил в
список библиотек для ее линковки libshp.la. Вроде бы все
нормально, сборка (%make_build) проходит, но на стадии install
вылезает проблема:
make[1]: Entering directory
`/usr/src/RPM/BUILD/gdal-1.3.2/libshp'
/usr/src/RPM/BUILD/gdal-1.3.2/install-sh -d
/usr/src/tmp/gdal-buildroot/usr/lib
for f in libshp.la ; do /bin/sh
/usr/src/RPM/BUILD/gdal-1.3.2/libtool --mode=install
/usr/src/RPM/BUILD/gdal-1.3.2/install-sh -c $f
/usr/src/tmp/gdal-buildroot/usr/lib ; done
/usr/src/RPM/BUILD/gdal-1.3.2/install-sh -c .libs/libshp.so.1.0.1
/usr/src/tmp/gdal-buildroot/usr/lib/libshp.so.1.0.1
(cd /usr/src/tmp/gdal-buildroot/usr/lib && rm -f libshp.so.1 &&
ln -s libshp.so.1.0.1 libshp.so.1)
(cd /usr/src/tmp/gdal-buildroot/usr/lib && rm -f libshp.so && ln
-s libshp.so.1.0.1 libshp.so)
/usr/src/RPM/BUILD/gdal-1.3.2/install-sh -c .libs/libshp.lai
/usr/src/tmp/gdal-buildroot/usr/lib/libshp.la
/usr/src/RPM/BUILD/gdal-1.3.2/install-sh -c .libs/libshp.a
/usr/src/tmp/gdal-buildroot/usr/lib/libshp.a
chmod 644 /usr/src/tmp/gdal-buildroot/usr/lib/libshp.a
ranlib /usr/src/tmp/gdal-buildroot/usr/lib/libshp.a
libtool: install: warning: remember to run `libtool --finish
/usr/lib'
make[1]: Leaving directory `/usr/src/RPM/BUILD/gdal-1.3.2/libshp'
for f in libgdal.la ; do /bin/sh
/usr/src/RPM/BUILD/gdal-1.3.2/libtool --mode=install
/usr/src/RPM/BUILD/gdal-1.3.2/install-sh -c $f
/usr/src/tmp/gdal-buildroot/usr/lib ; done
libtool: install: warning: relinking `libgdal.la'
(cd /usr/src/RPM/BUILD/gdal-1.3.2; /bin/sh
/usr/src/RPM/BUILD/gdal-1.3.2/libtool  --mode=relink
i586-alt-linux-g++ /usr/src/RPM/BUILD/gdal-1.3.2/libshp/libshp.la
-lgeos -lgeos_c -lgif -ljpeg -lgeotiff -ltiff -lpng -lnetcdf -lpq
-L/usr/lib -lpq -lz -lm -lrt -ldl -o libgdal.la
/usr/src/RPM/BUILD/gdal-1.3.2/frmts/o/EnvisatFile.lo
/usr/src/RPM/BUILD/gdal-1.3.2/frmts/o/IdrisiDataset.lo
< куча всего поскипано > ./ogr/ogr2gmlgeometry.lo
./ogr/gml2ogrgeometry.lo -rpath
/usr/src/tmp/gdal-buildroot/usr/lib -no-undefined -version-info
11:0:10 )
i586-alt-linux-g++ -shared -nostdlib
/usr/lib/gcc/i586-alt-linux/3.4.4/../../../crti.o
/usr/lib/gcc/i586-alt-linux/3.4.4/crtbeginS.o
/usr/src/RPM/BUILD/gdal-1.3.2/frmts/o/.libs/EnvisatFile.o
/usr/src/RPM/BUILD/gdal-1.3.2/frmts/o/.libs/IdrisiDataset.o
< еще много чего поскипано > ./ogr/.libs/ogr2gmlgeometry.o
./ogr/.libs/gml2ogrgeometry.o
-L/usr/src/RPM/BUILD/gdal-1.3.2/libshp
-L/usr/lib -lshp -lgeos -lgeos_c
-lgif -ljpeg -lgeotiff -ltiff -lpng -lnetcdf -lpq -lz -lrt -ldl
-L/usr/lib/gcc/i586-alt-linux/3.4.4
-L/usr/lib/gcc/i586-alt-linux/3.4.4/../../.. -lstdc++ -lm -lc
-lgcc_s /usr/lib/gcc/i586-alt-linux/3.4.4/crtendS.o
/usr/lib/gcc/i586-alt-linux/3.4.4/../../../crtn.o  -Wl,-soname
-Wl,libgdal.so.1 -o .libs/libgdal.so.1.10.0
/usr/bin/ld: cannot find -lshp
collect2: ld returned 1 exit status
libtool: install: error: relink `libgdal.la' with the above
command before installing it

Вот так вот :(
Теперь думаю, что делать, если у кого-то будут идеи - заранее
благодарен.

-- 
WBR, Alexey Novikov
JIT: alex-novikov@jabber.ru


             reply	other threads:[~2006-10-31  6:33 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-31  6:33 Alexey Novikov [this message]
2006-10-31 17:38 ` Igor Zubkov
2006-11-01  5:55   ` [Comm] [OBORONA-SPAM] " Alexey Novikov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20061031063315.GA25448@localhost.localdomain \
    --to=shader@yandex.ru \
    --cc=community@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git