Поддержка MrSID для QGIS 2.4 в Ubuntu 14.04

Я пытаюсь получить поддержку MrSID в QGIS 2.4 в Ubuntu 14.04. В соответствии с этим руководством вы должны пересобрать libgdal для MrSID SDK из LizardTech. Но я не могу найти пакет libgdal-mrsid-src, как указано в инструкции. Однако, похоже, что это могло быть слито в пакет libgdal-dev. Когда я пытаюсь установить этот пакет, мне говорят, что я должен установить libmysqlclient-dev, но не могу установить libmysqlclient-dev, так как у меня установлена ​​MariaDB 10.

Полное сообщение об ошибке:

    Некоторые пакеты не могут быть установлены. Это может означать, что у вас есть
    запросил невозможную ситуацию или если вы используете нестабильную
    рассылка о том, что некоторые необходимые пакеты еще не созданы
    или был перемещен из входящих.
    Следующая информация может помочь разрешить ситуацию:

    Следующие пакеты имеют неудовлетворенные зависимости:   
     libmysqlclient-dev: Зависит от: libmysqlclient18 (= 5.5.38-0ubuntu0.14.04.1), но
 10.0.10+maria-1~saucy должна быть установлена
    E: Невозможно исправить проблемы, у вас есть сломанные пакеты

Итак, вот мои оригинальные два вопроса:

  1. Правильно ли я понимаю, что пакет libgdal-mrsid-src объединяется с пакетом libgdal-dev?

    Ответ: Да, но вы должны использовать apt-get source libgdal-dev

  2. Если ответ на вопрос 1 - да, то как мне исправить конфликт и при этом сохранить MariaDB 10?

    Ответ: Кажется, это скорее красная селедка, так как я не уверен, что libgdal-dev действительно нужно установить. Однако, если вы запустите apt-get install libgdal-dev libmariadbclient-dev зависимости кажутся выполненными.

Теперь я дошел до того, что стал неуверенным в своих шагах. В каталоге gdal-1.10.1 + dfsg, который создается с помощью установки исходников, я запускаю

./configure --with-gdal=/usr/bin/gdal-config \
            --with-mrsid=/ путь / к /MrSID_DSDK/Raster_DSDK \
            --with-mrsid_lidar=/ путь / к /MrSID_DSDK/Lidar_DSDK \
            --with-jp2mrsid= да --with-geotiff= да

делать
сделать установку

Тем не менее, он собирает полный пакет gdal и устанавливает его в / usr / local / bin вместо /usr/bin (место установки apt-get). Этот пакет также не имеет поддержки mysql (угадайте, вопрос 2 может не быть такой красной сельдью в конце концов). Не говоря уже о том, что я не собираюсь собирать полный пакет из исходного кода.

Другой вариант, который я попробовал, состоял в том, чтобы просто скомпилировать плагин mrsid для gdal. Остановив приведенные выше инструкции после команды configure, я перешел в каталог /gdal-1.10.1+dfsg/frmts/mrsid и запустил make plugin libgdal-mrsid который произвел следующую ошибку:

/ bin / bash /root/gdal-1.10.1+dfsg/libtool --mode = compile --tag = CXX g ++ -g -O2 -DHAVE_SSE_AT_COMPILE_TIME -Wall -I / root / gdal-1.10.1 + dfsg / port - I / root / gdal-1.10.1 + dfsg / gcore -I / root / gdal-1.10.1 + dfsg / alg -I / root / gdal-1.10.1 + dfsg / ogr -I / root / gdal-1.10. 1 + dfsg / ogr / ogrsf_frmts -DMRSID_J2K -I /usr/share/MrSID_DSDK-9.1.0.4045/Raster_DSDK/include -I../../ frmts / gtiff / libgeotiff -DOGR_ENABLED -D_REENTRANT -I 1 / root / g-1 / root.1+dfsg/port   -c -o mrsiddataset.o mrsiddataset.cpp
libtool: compile:  g++ -g -O2 -DHAVE_SSE_AT_COMPILE_TIME -Wall -I/root/gdal-1.10.1+dfsg/port -I/root/gdal 1.10.1+dfsg/gcore -I/root/gdal-1.10.1+dfsg/alg -I/root/gdal-1.10.1+dfsg/ogr -I/root/gdal-1.10.1+dfsg/ogr/ogrsf_frmts -DMRSID_J2K  -I/usr/share/MrSID_DSDK-9.1.0.4045/Raster_DSDK/include -I../../frmts/gtiff/libgeotiff -DOGR_ENABLED -D_REENTRANT  -I/root/gdal-1.10.1+df / port_f -c mrsiddataset.cpp  -fPIC -DPIC -o .libs/mrsiddataset.o
mrsiddataset.cpp: в функции-члене 'виртуальный CPLErr MrSIDRasterBand::IReadBlock(int, int, void*)':
mrsiddataset.cpp:552:64: предупреждение: 'void* LizardTech::LTISceneBuffer::getTotalBandData(lt_uint16) const' устарело (объявлено по адресу /usr/share/MrSID_DSDK-9.1.0.4045/Raster_DSDK/include/l5uerh.ne) [-Wdeprecated-декларации]
     memcpy( pImage, poGDS->poBuffer->getTotalBandData(nBand - 1), 
                                                                ^
mrsiddataset.cpp: в функции-члене 'виртуальный CPLErr MrSIDDataset::IRasterIO(GDALRWFlag, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int void*, int, int, GDALDataType, int, int*, int, int, int)':
mrsiddataset.cpp:979:68: предупреждение:' void * LizardTech:: LTISceneBuffer:: getTotalBandData (lt_uint16) const 'устарела (объявлено в /usr/share/MrSID_DSDK-9.1.0.4045/Raster_DSDK/include/lti_sceneBuffer.h:565) [-Wdeprecated-декларации]
                 oLTIBuffer.getTotalBandData( panBandMap[iBand] - 1);
                                                                    ^
mrsiddataset.cpp:1017:47: предупреждение: 'void* LizardTech::LTISceneBuffer::getTotalBandData(lt_uint16) const' устарело (объявлено по адресу /usr/share/MrSID_DSDK-9.1.0.4045/Raster_DSDK/incneButi_ti 565) [-Wdeprecated-декларации]
                         panBandMap[iBand] - 1);
                                               ^
libtool: compile:  g++ -g -O2 -DHAVE_SSE_AT_COMPILE_TIME -Wall -I/root/gdal-1.10.1+dfsg/port -I/root/gdal-1.10.1+dfsg/gcore -I/root/gdal-1.10.1+dfsg/alg -I/root/gdal-1.10.1+dfsg/ogr -I/root/gdal-1.10.1+dfsg/ogr/ogrsf_frmts -DMRSID_J2K  -I/usr/share/MrSID_DSDK-9.1.0.4045/Raster_DSDK/include -I../../frmts/gtiff/libgeotiff -DOGR_ENABLED -D_REENTRANT  -I/root/gdal-1.10.1+dfsg/port   -c mrsiddataset.cpp -o mrsiddataset.o >/dev/null 2>&1
/bin/bash /root/gdal-1.10.1+dfsg/libtool --mode=compile --tag=CXX g++ -g -O2 -DHAVE_SSE_AT_COMPILE_TIME  -Wall  -I/root/gdal-1.10.1+dfsg/port -I/root/gdal-1.10.1+dfsg/gcore -I/root/gdal-1.10.1+dfsg/alg -I/root/gdal-1.10.1+dfsg/ogr -I/root/gdal-1.10.1+dfsg/ogr/ogrsf_frmts -DMRSID_J2K  -I/usr/share/MrSID_DSDK-9.1.0.4045/Raster_DSDK/include -I../../frmts/gtiff/libgeotiff -DOGR_ENABLED -D_REENTRANT  -I gdal-1.10.1+dfsg/port   -c -o mrsidstream.o mrsidstream.cpp
libtool: compile:  g++ -g -O2 -DHAVE_SSE_AT_COMPILE_TIME -Wall -I/root/gdal-1.10.1+dfsg/port -I/root/ GDAL-1.10.1+dfsg/gcore -I/root/gdal-1.10.1+dfsg/alg -I/root/gdal-1.10.1+dfsg/ogr -I/root/gdal-1.10.1+dfsg/ogr/ogrsf_frmts -DMRSID_J2K  -I/usr/share/MrSID_DSDK-9.1.0.4045/Raster_DSDK/include -I../../frmts/gtiff/libgeotiff -DOGR_ENABLED -D_REENTRANT  -I/root/gdal-1.10.1+dfsg / port - - c mrsidstream.cpp  -fPIC -DPIC -o .libs/mrsidstream.o
libtool: compile:  g++ -g -O2 -DHAVE_SSE_AT_COMPILE_TIME -Wall -I/root/gdal-1.10.1+dfsg/port -I/root/gdal-1.10.1+dfsg/gcore -I/root/gdal-1.10.1+dfsg/alg -I/root/gdal-1.10.1+dfsg/ogr -I/root/gdal-1.10.1+dfsg/ogr/ogrsf_frmts -DMRSID_J2K -I/usr/share/MrSID_DSDK-9.1.0.4045/Raster_DSDK/include -I../../frmts/gtiff/libgeotiff -DOGR_ENABLED -D_REENTRANT -I/root/gdal-1.10.1+df / port_f -c mrsidstream.cpp -o mrsidstream.o >/dev/null 2>&1
mrsiddataset.o mrsidstream.o  -L/usr/share/MrSID_DSDK-9.1.0.4045/Raster_DSDK/ сторонняя версия /lib -L/usr/share/MrSID_DSDK-9.1.0.4045/Raster_DSDK/lib -lltidsdk -lpthread  -o gdal_MrSID.so
/bin/bash: mrsiddataset.o: команда не найдена make: *** [gdal_MrSID.so] Ошибка 127 

Я готов отказаться от добавления поддержки MrSID, но я не могу не чувствовать, что я близок, и мне просто нужно сделать небольшой шаг здесь или там.

1 ответ

Я верю, что вы очень близки. В последней строке вашего вывода нужна команда для создания библиотеки общего доступа:

g++ -shared после остальной части последней строки следует создать файл gdal_MrSID.so.

Другие вопросы по тегам