Russian Qt Forum
Ноябрь 25, 2024, 13:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите разобраться со сборкой библиотеки  (Прочитано 5281 раз)
RovingStone
Гость
« : Март 11, 2015, 10:43 »

Приветствую формучан!
В процессе написания программы мне понадобилась библиотека GDAL, с ней проблема и возникла.
Моя система: Windows 7 x64, Qt 5.4.1 с компилятором MinGW 4.9.1 (установил через онлайн установщик).
На официальном сайте ссылка для скачивания билдов под MinGW оказалась битая. Я пытался найти готовую сборку, попробовал установить некоторые программы, в которых есть эта библиотека (с хидерами). Со всеми этими сборками вылазили косяки различные, чаще всего во время исполнения. Я пришёл к выводу, что мне необходимо собрать библиотеку самостоятельно.
Инструкция по сборке под MinGW находится вот тут: http://trac.osgeo.org/gdal/wiki/BuildingWithMinGW
Установив по ссылкам всё необходимое, собрать библиотеку у меня получилось. Но моя сборка тоже не работает. Следовательно, как-то неправильно собираю. Мне кажется, что проблема может быть в том, какую версию MSYS использую и с каким компилятором.
Собственно, вопросы. Как мне её под свою систему собрать? Какие компоненты мне нужны? Был бы очень признателен, если бы мне подробно ответили. Но могу обойтись и ссылками, которые мне наверняка помогут разобраться.
Заранее спасибо.
P.S. Уже неделю с лишним над этой библиотекой бьюсь, посмотрел много всего и как-то потерялся уже.
Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #1 : Март 11, 2015, 11:26 »

попробовал у себя собрать (msys rev7, mingw 4.9.1) - собралось с первого раза (./configure && make)

лог configure:
Код:
GDAL is now configured for i686-pc-mingw32

  Installation directory:    /usr/local
  C compiler:                gcc -g -O2 -msse -DHAVE_SSE_AT_COMPILE_TIME
  C++ compiler:              g++ -g -O2 -msse -DHAVE_SSE_AT_COMPILE_TIME

  LIBTOOL support:           yes

  LIBZ support:              external
  LIBLZMA support:           no
  GRASS support:             no
  CFITSIO support:           no
  PCRaster support:          internal
  LIBPNG support:            internal
  DDS support:               no
  GTA support:               no
  LIBTIFF support:           internal (BigTIFF=yes)
  LIBGEOTIFF support:        internal
  LIBJPEG support:           internal
  12 bit JPEG:               yes
  12 bit JPEG-in-TIFF:       yes
  LIBGIF support:            internal
  OGDI support:              no
  HDF4 support:              no
  HDF5 support:              no
  NetCDF support:            no
  Kakadu support:            no
  JasPer support:            no
  OpenJPEG support:          no
  ECW support:               no
  MrSID support:             no
  MrSID/MG4 Lidar support:   no
  MSG support:               no
  GRIB support:              yes
  EPSILON support:           no
  WebP support:              no
  cURL support (wms/wcs/...):no
  PostgreSQL support:        no
  MySQL support:             no
  Ingres support:            no
  Xerces-C support:          no
  NAS support:               no
  Expat support:             no
  libxml2 support:           no
  Google libkml support:     no
  ODBC support:              no
  PGeo support:              no
  FGDB support:              no
  MDB support:               no
  PCIDSK support:            internal
  OCI support:               no
  GEORASTER support:         no
  SDE support:               no
  Rasdaman support:          no
  DODS support:              no
  SQLite support:            no
  PCRE support:              no
  SpatiaLite support:        no
  DWGdirect support          no
  INFORMIX DataBlade support:no
  GEOS support:              no
  Poppler support:           no
  Podofo support:            no
  OpenCL support:            no
  Armadillo support:         no
  FreeXL support:            no
  SOSI support:              no


  SWIG Bindings:             no

  Statically link PROJ.4:    no
  enable OGR building:       yes
  enable pthread support:    yes
  enable POSIX iconv support:yes
  hide internal symbols:     no
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
RovingStone
Гость
« Ответ #2 : Март 11, 2015, 12:04 »

Хорошие новости) Но собрать у меня тоже получалось. Не могли бы проверить работает ли вот такой код:
Код:
    GDALAllRegister();
    GDALDataset *data = (GDALDataset*)(GDALOpen("C:/cea.tif",GA_ReadOnly));
    qDebug()<<data->GetDriver()->GetDescription();

Нужно подключить gdal_priv.h

Когда я запускал, у меня не все функции работали, только Сишные.

Картинка во вложении.
Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #3 : Март 11, 2015, 13:38 »

Хорошие новости) Но собрать у меня тоже получалось. Не могли бы проверить работает ли вот такой код:
Код:
    GDALAllRegister();
    GDALDataset *data = (GDALDataset*)(GDALOpen("C:/cea.tif",GA_ReadOnly));
    qDebug()<<data->GetDriver()->GetDescription();

Нужно подключить gdal_priv.h

Когда я запускал, у меня не все функции работали, только Сишные.

Картинка во вложении.
"GTiff" в консоле выводит.
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
RovingStone
Гость
« Ответ #4 : Март 11, 2015, 14:28 »

Отлично. Значит у вас всё как нужно собралось.
Пожалуйста, объясните как мне так же собрать. Откуда MSYS взять и MinGW? Можно ли использовать MinGW из комплекта Qt (который с ним в комплекте идёт)?
Т.е. как мне всю эту систему в кучу собрать и настроить?
Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #5 : Март 11, 2015, 14:40 »

Отлично. Значит у вас всё как нужно собралось.
Пожалуйста, объясните как мне так же собрать. Откуда MSYS взять и MinGW? Можно ли использовать MinGW из комплекта Qt (который с ним в комплекте идёт)?
Т.е. как мне всю эту систему в кучу собрать и настроить?
MinGW - из комплекта, msys - когда то давно не помню откуда качал, да так до сих пор и использую.
скинул свою версию на гуглодиск. в файле \msys\etc\fstab исправить местоположение компилятора на реальное. Ну а как собиралось я уже писал выше - "./configure --prefix=/c/mingw32/opt/", затем "make", затем "make install".
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
RovingStone
Гость
« Ответ #6 : Март 11, 2015, 16:21 »

Всё работает, спасибо большое!
Правда, мне пришлось ещё прописать в переменную PATH в настройках проекта путь до папки mingw491_32/opt/bin, чтобы dll основная находилась.
Последний вопрос остался. Я подключал библиотеку libgdal.a и libgdal.dll.a, работает и с той и с другой. В чём между ними принципиальная разница?
Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #7 : Март 12, 2015, 03:07 »

Всё работает, спасибо большое!
Правда, мне пришлось ещё прописать в переменную PATH в настройках проекта путь до папки mingw491_32/opt/bin, чтобы dll основная находилась.
Последний вопрос остался. Я подключал библиотеку libgdal.a и libgdal.dll.a, работает и с той и с другой. В чём между ними принципиальная разница?
а вот тут хз - судя по размеру, первая - статическая сборка библиотеки, а вторая - динамическая. Но в итоге и та и та dll требует, так что повторюсь - хз )
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
RovingStone
Гость
« Ответ #8 : Март 12, 2015, 11:26 »

Ещё раз спасибо)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.304 секунд. Запросов: 23.