On 20/02/15 18:08, Even Rouault wrote:
Le vendredi 20 février 2015 12:16:55, Moritz Lennert a écrit :
On 19/02/15 19:57, Even Rouault wrote:
Le jeudi 19 février 2015 18:43:06, Moritz Lennert a écrit :
Hi,

I do'nt know if this is more an issue for DebianGIS, but I have the
feeling it is an upstream issue, so I'm posting it here. Please redirect
me if you think I'm wrong.

I'm trying to activate MrSID support for GDAL.

I downloaded and unpacked MrSID_DSDK-9.1.0.4045-linux.x86-64.gcc44.

Then I ran the following on a Debian testing machine:

**
apt-get source gdal
cd gdal-1.10.1+dfsg/
debian/rules gdal-mrsid (which AFAIU basically just creates
libgdal-mrsid-1.10.1.tar.gz and copies it to the directory above the
GDAL source directory)
cd ../
tar xvzf libgdal-mrsid-1.10.1.tar.gz
cd libgdal-mrsid-1.10.1/
chmod +x configure
./configure --with-gdal=/usr/bin/gdal-config
--with-mrsid=/home/mlennert/SRC/MrSID_DSDK-9.1.0.4045-linux.x86-64.gcc44
/Ra ster_DSDK --with-jp2mrsid=no
make
sudo make install
**

I do not get any error message, but when I run

gdalinfo --formats | grep -i sid

the MrSID format is not listed.

I ran ldd on the plugin .so installed in /usr/lib/gdalplugin

and saw that it couldn't find libltidsdk.so.

So I set

export
LD_LIBRARY_PATH=/home/mlennert/SRC/MrSID_DSDK-9.1.0.4045-linux.x86-64.gc
c44 /Raster_DSDK/lib/

and now ldd could find the library, but MrSID is still not listed
amongst the available formats.

Moritz,

If once you've set LD_LIBRARY_PATH, ldd doesn't report any unfound
library, then you could check if GDAL_DRIVER_PATH is defined and make
point it to /usr/lib/gdalplugin (although that path should be hardcoded
in the GDAL library by default)

Setting GDAL_DRIVER_PATH did the trick. Thanks for the hint !

Before adding this info to the wiki as Jeff suggested, I think we should
investigate why this path is not set by default as you say.

In gcore/gdaldrivermanager.cpp I read:

"There are a few rules for the driver path.  If the GDAL_DRIVER_PATH
environment variable it set, it is taken to be a list of directories to
search separated by colons on UNIX, or semi-colons on Windows.
Otherwise the /usr/local/lib/gdalplugins directory, and (if known) the
lib/gdalplugins subdirectory of the gdal home directory are searched on
UNIX and $(BINDIR)\gdalplugins on Windows."

So, /usr/lib/gdalplugins (which is where the plugin gets installed by
default using the process I explained) does not seem to be in the list
of hardcoded paths. So, maybe '/usr/lib/gdalplugins' could be added to
the search path ? It does seem a fairly standard path...

There's this snippet of code as well:

#ifdef GDAL_PREFIX
         papszSearchPath = CSLAddString( papszSearchPath,
     #ifdef MACOSX_FRAMEWORK
                                         GDAL_PREFIX "/PlugIns");
     #else
                                         GDAL_PREFIX "/lib/gdalplugins" );
     #endif

If you look at port/cpl_config.h, you'll see a  #define GDAL_PREFIX with the
installation prefix, so for example /usr if you ran ./configure --prefix=/usr,
which makes /usr/lib/gdalplugins to be searched.


Sorry for the delay in replying:

port/cpl_config.h shows this:

/* --prefix directory for GDAL install */
#define GDAL_PREFIX "/usr"

so does, obviously 'gdal-config --prefix'.

So it's a bit mysterious to me why I have to set GDAL_DRIVER_PATH...

Moritz
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to