[GRASSLIST:689] undefined symbol pj_get_def in r.gdal.in (grass51cvs)

Hi,
I'm trying to get grass51 working. I followed the instructions for cvs
building, and everything builds fine. I can do the demo tour, also.
However, if I try to use r.in.gdal, I get the following error:

GRASS 5.1.0-cvs:/usr/local/src/grass51cvs/grass51 > r.in.gdal
r.in.gdal: relocation error:
/usr/local/src/grass51cvs/grass51/dist.i686-pc-linux-gnu/lib/libgrass_gproj.so:
undefined symbol: pj_get_def

I really really made sure that I have the latest GDAL and proj.4 on my system
(both from cvs), and no remains of older versions of these. I configured
grass with:

./configure \
--with-grass50=/usr/local/src/grass51cvs/grass \
--with-postgres-includes=/usr/local/pgsql/include \
--with-postgres-libs=/usr/local/pgsql/lib/ \
--with-freetype \
--with-readline \
--with-proj-includes=/usr/local/src/proj/src \
--with-proj-libs=/usr/local/src/proj/src/.libs \
--with-cxx

and tried several other things for the proj configure options, without any
difference. Running nm on grasslib_gproj.so shows several other undefined
symbols, apparently all from the proj lib. Is this normal?
My question: is r.in.gdal supposed to work in 5.1, and if so, how can I solve
this?

Thanks,
______________________________________
Vincent Schut
Sarvision B.V.
Wageningen, The Netherlands
www.sarvision.com

Hello

On Thu, 10 Jul 2003, Vincent Schut wrote:

Hi,
I'm trying to get grass51 working. I followed the instructions for cvs
building, and everything builds fine. I can do the demo tour, also.
However, if I try to use r.in.gdal, I get the following error:

GRASS 5.1.0-cvs:/usr/local/src/grass51cvs/grass51 > r.in.gdal
r.in.gdal: relocation error:
/usr/local/src/grass51cvs/grass51/dist.i686-pc-linux-gnu/lib/libgrass_gproj.so:
undefined symbol: pj_get_def

I really really made sure that I have the latest GDAL and proj.4 on my system
(both from cvs), and no remains of older versions of these. I configured
grass with:

./configure \
--with-grass50=/usr/local/src/grass51cvs/grass \
--with-postgres-includes=/usr/local/pgsql/include \
--with-postgres-libs=/usr/local/pgsql/lib/ \
--with-freetype \
--with-readline \
--with-proj-includes=/usr/local/src/proj/src \
--with-proj-libs=/usr/local/src/proj/src/.libs \

                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I don't have too much of an idea about this, but perhaps the above
directory where your libproj.so is installed isn't in one of the
directories where your system looks for shared libraries?
Meaning you would have to add /usr/local/src/proj/src/.libs to your
LD_LIBRARY_PATH environment variable, or on Linux add it to
/etc/ld.so.conf and run ldconfig. Or else install PROJ properly so the
library libproj.so is in one of the standard system directories for shared
libraries.

Maybe the GRASS environment should set a special LD_LIBRARY_PATH to take
care of things like this? I know I needed to set it manually to be able to
use the GRASS 5.1 shared libraries on IRIX.

--with-cxx

and tried several other things for the proj configure options, without any
difference. Running nm on grasslib_gproj.so shows several other undefined
symbols, apparently all from the proj lib. Is this normal?

Somebody reported this before for d.where but said they had proj installed.
http://intevation.de/rt/webrt?serial_num=1948&display=History
I can't think what else it would be other than the system not finding the
shared libraries.

Paul Kelly

feeling so ashamed...

indeed there were older libproj.so's. Though I had looked everywhere, but
forgot to look in /lib instead of /usr/lib/ and /usr/local/lib etc. Never
thought that in my early linux days I would have installed something in
/lib...
Well, it's working now.

Regards,
Vincent.

On Thursday 10 July 2003 16:19, Paul Kelly wrote:

Hello

On Thu, 10 Jul 2003, Vincent Schut wrote:
> Hi,
> I'm trying to get grass51 working. I followed the instructions for cvs
> building, and everything builds fine. I can do the demo tour, also.
> However, if I try to use r.in.gdal, I get the following error:
>
> GRASS 5.1.0-cvs:/usr/local/src/grass51cvs/grass51 > r.in.gdal
> r.in.gdal: relocation error:
> /usr/local/src/grass51cvs/grass51/dist.i686-pc-linux-gnu/lib/libgrass_gpr
>oj.so: undefined symbol: pj_get_def
>
> I really really made sure that I have the latest GDAL and proj.4 on my
> system (both from cvs), and no remains of older versions of these. I
> configured grass with:
>
> ./configure \
> --with-grass50=/usr/local/src/grass51cvs/grass \
> --with-postgres-includes=/usr/local/pgsql/include \
> --with-postgres-libs=/usr/local/pgsql/lib/ \
> --with-freetype \
> --with-readline \
> --with-proj-includes=/usr/local/src/proj/src \
> --with-proj-libs=/usr/local/src/proj/src/.libs \

                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I don't have too much of an idea about this, but perhaps the above
directory where your libproj.so is installed isn't in one of the
directories where your system looks for shared libraries?
Meaning you would have to add /usr/local/src/proj/src/.libs to your
LD_LIBRARY_PATH environment variable, or on Linux add it to
/etc/ld.so.conf and run ldconfig. Or else install PROJ properly so the
library libproj.so is in one of the standard system directories for shared
libraries.

Maybe the GRASS environment should set a special LD_LIBRARY_PATH to take
care of things like this? I know I needed to set it manually to be able to
use the GRASS 5.1 shared libraries on IRIX.

> --with-cxx
>
> and tried several other things for the proj configure options, without
> any difference. Running nm on grasslib_gproj.so shows several other
> undefined symbols, apparently all from the proj lib. Is this normal?

Somebody reported this before for d.where but said they had proj installed.
http://intevation.de/rt/webrt?serial_num=1948&display=History
I can't think what else it would be other than the system not finding the
shared libraries.

Paul Kelly

--
______________________________________
Vincent Schut
Sarvision B.V.
Wageningen, The Netherlands
www.sarvision.com