wiki:MrSID

Version 6 (modified by Mateusz Łoskot, 16 years ago) ( diff )

--

MrSID

Building with MrSID SDK

MrSID driver needs LizardTech decoding software development kit (DSDK). It is not free software, but you can download it without charge here: http://developer.lizardtech.com/ . To enable file creation capability you need encoding SDK (ESDK). You should contact LizardTech to obtain it.

The DSDK is distributed in binary form and if you are using GCC, please, ensure that you have the same compiler as was used for DSDK compilation. It is C++ library, so you may get incompatibilities in C++ name mangling among different GCC versions (2.95.x and 3.x).

Note on using GNU Libtool, users have confirmed that GDAL with MrSID builds successfully with or without libtool support (configure options: --with-libtool and --without-libtool).

Extra qualification error (C++)

Some folks have reported the following building on unix:

Has anyone made notes recently on compiling gdal with mrsid support.

Here is what I did so far, but it failed.
1) download the DSDK from LizardTech
2) ./configure --with-mrsid=pathToDSDK
3)edited MRSID lines in nmake.opt to point to the DSDK directory 4)gmake

I got this error:
/home/pvandeus/downloads/gdal/Geo_DSDK-6.0.7.1407/include/base
/lti_sceneBuffer.h:356:
error: extra qualification 'LizardTech::LTISceneBuffer::' on member 'inWindow'
gmake[2]: *** [../o/mrsiddataset.o] Error 1
gmake[2]: Leaving directory
`/home/pvandeus/downloads/gdal/gdal-1.4.0/frmts/mrsid'
gmake[1]: *** [mrsid-install-obj] Error 2
gmake[1]: Leaving directory `/home/pvandeus/downloads/gdal/gdal-1.4.0/frmts'
gmake: *** [frmts-target] Error 2

This is on a system running Fedora Core 6. 

This is an incompatibility of the MrSID SDK header file with gcc 3.4+; it was not considered an error in previous versions of gcc. (Thanks to Mateusz Loskot for pointing it out to us originally.)

To fix the issue in the header (lti_sceneBuffer.h), simply remove the extra qualification from the inWindow declaration. Line 356 should look like this:

bool inWindow(lt_uint32 x, lt_uint32 y) const; 

Open Tickets

No results

Note: See TracWiki for help on using the wiki.