From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 31 Oct 2006 09:33:15 +0300 From: Alexey Novikov To: community@lists.altlinux.org Message-ID: <20061031063315.GA25448@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit Subject: [Comm] libtool need help X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.9rc1 Precedence: list Reply-To: ALT Linux Community List-Id: ALT Linux Community List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Oct 2006 06:33:30 -0000 Archived-At: List-Archive: List-Post: Доброго времени суток всем! Обращаюсь за помощью к сообществу, т.к. я уже весь мозг сломал :) Вкратце опишу ситуацию: Есть некоторый проект (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