Поддержка 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: Невозможно исправить проблемы, у вас есть сломанные пакеты
Итак, вот мои оригинальные два вопроса:
Правильно ли я понимаю, что пакет libgdal-mrsid-src объединяется с пакетом libgdal-dev?
Ответ: Да, но вы должны использовать
apt-get source libgdal-dev
Если ответ на вопрос 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.