[GRASS-user] Question on how to satisfy Gdal dependency: libstdc++.la

I'm trying to do a fresh gdal compile for an eventual grass-cvs install. I
want gdal and grass both installed under /opt. I'm using gdal-1.3.2.

Here's my configure line:

./configure --with-png=internal --with-jpeg=internal --with-gif=internal
--with-libtiff=internal --with-geotiff=internal --with-libz=internal
--without-pg --without-ogdi --with-python --with-threads=yes --with-sqlite
--without-grass --without-libgrass --prefix=/opt --bindir=/opt/bin
--enable-shared

And the output:

GDAL is now configured for i686-pc-linux-gnu

  Installation directory: /opt
  C compiler: gcc -O2
  C++ compiler: g++ -O2

  LIBTOOL support: yes

  LIBZ support: internal
  GRASS support: no
  CFITSIO support: no
  PCRaster support: internal
  NETCDF support: yes
  LIBPNG support: internal
  LIBTIFF support: internal
  LIBGEOTIFF support: internal
  LIBJPEG support: internal
  LIBGIF support: internal
  OGDI support: no
  HDF4 support: no
  HDF5 support: no
  KAKADU support: no
  JASPER support: no
  ECW support: no
  MrSID support: no
  POSTGRESQL support: no
  MySQL support: no
  XERCES support: no
  ODBC support: yes
  OCI support: no
  SDE support: no
  DODS support: no
  SQLite support: yes
  DWGdirect support no
  PANORAMA GIS support: no
  GEOS support: yes

  Statically link PROJ.4: no

  Traditional Python: no
  NG SWIG Bindings:

  enable OGR building: yes

Make then runs for about 10 minutes, after which it crashes with the
following error:

...
<snip>
ranlib .libs/libgdal.a
creating libgdal.la
/bin/sed: can't read /usr/lib/libstdc++.la: No such file or directory
libtool: link: `/usr/lib/libstdc++.la' is not a valid libtool archive
make[1]: *** [libgdal.la] Error 1
make[1]: Leaving directory `/opt/gdal-1.3.2'
make: *** [check-lib] Error 2

Can I create some kind of symlink for this? Checking in /usr/lib for what I
have installed for libstdc++, I get the following files:

/usr/lib/libstdc++.so.6.0.5
/usr/lib/libstdc++.so.6
/usr/lib/gcc/i486-linux-gnu/4.0.2/64/libstdc++.a
/usr/lib/gcc/i486-linux-gnu/4.0.2/64/libsupc++.a
/usr/lib/gcc/i486-linux-gnu/4.0.2/libstdc++.a
/usr/lib/gcc/i486-linux-gnu/4.0.2/libsupc++.a

Thanks for any ideas you could provide,

~ Eric.

Patton, Eric wrote:

I'm trying to do a fresh gdal compile for an eventual grass-cvs install. I
want gdal and grass both installed under /opt. I'm using gdal-1.3.2.

<snip>

ranlib .libs/libgdal.a
creating libgdal.la
/bin/sed: can't read /usr/lib/libstdc++.la: No such file or directory
libtool: link: `/usr/lib/libstdc++.la' is not a valid libtool archive
make[1]: *** [libgdal.la] Error 1
make[1]: Leaving directory `/opt/gdal-1.3.2'
make: *** [check-lib] Error 2

Can I create some kind of symlink for this?

A .la file is a text file containing metadata for a library; they are
created by and used by libtool.

In particular, libtool cannot use a static library without the
corresponding .la file, as static libraries don't include dependency
information.

Checking in /usr/lib for what I
have installed for libstdc++, I get the following files:

/usr/lib/libstdc++.so.6.0.5
/usr/lib/libstdc++.so.6
/usr/lib/gcc/i486-linux-gnu/4.0.2/64/libstdc++.a
/usr/lib/gcc/i486-linux-gnu/4.0.2/64/libsupc++.a
/usr/lib/gcc/i486-linux-gnu/4.0.2/libstdc++.a
/usr/lib/gcc/i486-linux-gnu/4.0.2/libsupc++.a

Thanks for any ideas you could provide,

I suggest doing:

  ln -s libstdc++.so.6 /usr/lib/libstdc++.so

then start building GDAL from the beginning (i.e. make distclean,
configure, ...).

Hopefully, that will cause it to pick up the shared C++ library rather
than the static version.

--
Glynn Clements <glynn@gclements.plus.com>