Библиотека GDAL успешно собирается в системах Linux, IRIX, Solaris, BSD, и MacOS X. На Unix-платформах вы можете скомпилировать её следующим способом (предполагается, что исходные тексты распакованы или взяты из CVS модуля gdal):
% cd gdal
% ./configure
% make
% su
Password: ********
# make install
# exit
Для того, чтобы запустить GDAL после установки, необходимо сделать разделяемую библиотеку известной динамическому загрузчику. Обычно этого можно достичь, включив в значение переменной окружения LD_LIBRARY_PATH путь /usr/local/lib.
Обратите внимание на следующие особенности:
-
Для сборки на платформе Unix необходима утилита GNU make. Скачайте и установите её, если она отсутствует в вашей системе.
-
GDAL не требует большого числа дополнительных пакетов. Она включает в себя исходные тексты библиотек libz, libtiff, libgeotiff, libpng, libgif, и libjpeg, которые могут быть использованы, если отсутствуют их предустановленные версии (либо их использование нежелательно).
-
Некоторые драйверы зависят от внешних библиотек. Команда configure --help выводит список параметров сборки, в том числе параметры для указания путей к внешним библиотекам, применяемым для работы с форматами GRASS, FITS, OGDI, HDF4, JPEG2000, ECW и т.п.
-
Процесс сборки разделяемой библиотеки в сильной степени определяется набором инструментов GNU. Если вы используете что-то иное, чем GNU C++, то скорее всего окажется, что файлы .so не будут правильно собраны. В этом случае можно попробовать связывать приложение со статическими библиотеками (обычно gdal/gdal.a gdal/ogr/ogr.a gdal/frmts/o/ *.a gdal/gdal.a gdal/port/cpl.a), либо изменить команду LD_SHARED в файле gdal/GDALmake.opt так, чтобы она работала на вашей платформе. Например, для платформ SGI обычно подходит команда c++ -shared -all.
-
И GDAL, и включённые в поставку утилиты должны нормально собираться в среде Cygwin и на платформах, где разделяемые библиотеки не поддерживаются. Однако для сборки ваших собственных приложений требуется связывание с более широким набором библиотек. Команда gdal-config --libs выведет требуемый список библиотек.
-
Логика "autoconf", проверяющая наличие libtiff, libpng и libjpeg недостаточно хорошо тестирует версии этих библиотек. Если вы используете предустановленные библиотеки и они не работают, перезапустите скрипт configure с параметрами "--with-png=internal", "--with-jpeg=internal", "--with-geotiff=internal" или "--with-libtiff=internal".
-
Для сборки на IRIX скорее всего понадобится вручную исправить файл GDALmake.opt, получающийся в результате запуска configure и заменить "ld -shared" на "ld -shared -all".
-
Если при сборке вы обнаружите проблемы с одним из драйверов для формата, который вам не нужен, то просто удалите его из списка GDAL_FORMATS в конце файла gdal/GDALmake.opt, сделайте make clean и затем make. Это исключит его из процесса компиляции и использования после запуска.
-
При инсталляции без прав суперпользователя (в ваше собственный каталог, указанный параметром --prefix), то вы скорее всего получите проблемы с модулями для языка Python, поскольку они всегда пытаются установиться в каталог site-packages в дереве Python. Если поддержка Python вам не нужна, то вы можете отключить её на этапе конфигурирования с помощью параметра --without-python, либо указать доступный для записи каталог с помощью параметра --with-pymodir=<directory>. Модули Python будут установлены туда.
В среде Windows GDAL можно собрать с помощью компиляторов MS VC++ 6.x или MS Visual Studio .NET (C++) из командной строки. Для этого вам обычно следует запустить скрипт VCVAR32.BAT, который устанавливается вместе в компилятором. Для MSVC 6.x он может быть расположен в
C:\Program Files\Microsoft Visual Studio\VC98\bin\VCVARS32.BAT
Как только все переменные окружения будут установлены, можно переходить в корневой каталог GDAL и запускать следующую команду:
C:\GDAL> nmake /f makefile.vc
После успешного завершения сборки можно установить все необходимые для функционирования GDAL файлы, используя цель install мейкфайла. Перед этим убедитесь, что переменные BINDIR и DATADIR в файле nmake.opt установлены в подходящие для вас значения:
C:\GDAL> nmake /f makefile.vc install
Если вы собираетесь применять GDAL в ваших собственных приложениях, то можно использовать следующую команду для установки всех необходимых библиотек и заголовочных файлов. Убедитесь, что в файле nmake.opt переменные LIBDIR и INCDIR установлены в подходящие для вас значения.
C:\GDAL> nmake /f makefile.vc devinstall
Проекты, собираемые с GDAL, должны включать каталог, заданный в переменной INCDIR, в список путей для поиска заголовочных файлов, а каталог, заданный в LIBDIR в список /LIBPATH. Связываться следует с библиотекой импорта gdal_i.lib.
Файл nmake.opt, расположенный в корневом каталоге GDAL, содержит большое количество параметров, которые могут быть настроены вручную:
-
BINDIR: Каталог, в который будут установлены исполняемые файлы и разделяемые библиотеки при выполнение команды "nmake /f makefile.vc install".
-
LIBDIR: Каталог, в который будет установлена библиотека импорта gdal_i.lib.
-
INCDIR: Каталог, в который будут установлены заголовочные файлы GDAL/OGR.
-
DATADIR: Каталог, в который будут установлены необходимые файлы данных.
-
OPTFLAGS: Эта переменная должна содержать флаги компилятора, которые следует применить при сборке GDAL. По умолчанию используется сборка с отладочной информацией, а флаги для оптимизированной окончательной сборки закомментированы. Пожалуйста, обратите внимание на то, что если вы будете собирать GDAL с использованием дополнительных библиотек (установленных из бинарных пакетов, либо собранных вами ранее), вам необходимо использовать одинаковые параметры сборки для этих библиотек и для GDAL. Например, если вы используете флаг /MD в строке OPTFLAGS (связывание с многопоточной разделяемой стандартной библиотекой), то тот же самый флаг должен быть использован при компиляции других библиотек, таких, как HDF4 и JasPer. Если у вас нет исходных текстов дополнительных библиотек, то прочитайте документацию, поставляемую вместе с ними, для того, чтобы выяснить, как она была скомпилирована и какие флаги вам следует выставить в строке OPTFLAGS. Смешивание различных параметров компиляции или флагов оптимизации/отладки приведёт к ошибкам при сборке или к падениям после запуска на исполнение.
-
PY_INST_DIR: Каталог, в который будут устанавливаться модули поддержки языка Python. Необходим только в случае, если эта поддержка включена.
-
PYDIR: Каталог, в который установлено дерево Python. Используется для для поиска заголовочных файлов Python. Если эта переменная указывает на несуществующий каталог, то тогда поддержка Python будет выключена.
-
DLLBUILD: Установите эту переменную в значение "1", чтобы заставить утилиты OGR связываться с разделяемой библиотекой GDAL, а не компилироваться статически.
-
INCLUDE_OGR_FRMTS: Установите эту переменную в значение "YES", чтобы включить сборку библиотеки OGR, либо закомментируйте её, для исключения OGR из сборки.
-
SETARGV: Путь к файлу setargv.obj из поставки Visual Studio. Включите эту переменную, если вы хотите получить раскрытие метасимволов в аргументах командной строки. Если вам это не требуется, оставьте параметр закомментированным.
-
ECWDIR/ECWLIB: Раскомментируйте эти параметры для включения поддержки ECW. ECWDIR должна указывать на каталог, в котором установлены библиотеки ECW.
-
OGDIDIR/OGDIVER/OGDILIB: Раскомментируйте эти параметры для включения поддержки OGDI, отредактировав OGDIDIR и OGDIVER в соответствии с вашей системой.
-
HDF4_DIR: Раскомментируйте и отредактируйте эту переменную для включения поддержки NCSA HDF Release 4.
-
JASPER_DIR/JASPER_INCLUDE/JASPER_LIB: Эти переменные указывают на каталоги, в которые установлены компоненты библиотеки JasPer. Эта библиотека необходима для поддержки формата JPEG2000.
-
XERCES_DIR/XERCES_INCLUDE/XERCES_LIB: Раскомментируйте и отредактируйте переменную XERCES_DIR для включения поддержки XML-анализатора Xerces при чтении файлов в формате GML.
-
FME_DIR: Раскомментируйте и отредактируйте эту переменную для включения поддержки векторного формата FMEObject.
-
JPEG_EXTERNAL_LIB/JPEGDIR/JPEG_LIB: Эти переменные используются для связывания GDAL с внешней библиотекой JPEG (по умолчанию будет скомпилирована встроенная библиотека). Раскомментируйте их и отредактируйте пути.
-
PNG_EXTERNAL_LIB/PNGDIR/PNG_LIB: Эти переменные используются для связывания GDAL с внешней библиотекой PNG (по умолчанию будет скомпилирована встроенная библиотека). Раскомментируйте их и отредактируйте пути.
При добавлении новых компонентов я часто забываю обновить мейкфайлы для Windows, поэтому если при сборке что-то не найдено, попробуйте сравнить списки файлов в соответствующем makefile.vc со списками в GNUmakefile, либо просто сообщите об этом мне.
Некоторые драйверы требуют установки на вашу систему следующих дополнительных библиотек:
-
Библиотека NCSA HDF. Может быть скачана с домашней страницы NCSA HDF в Национальном центре суперкомпьютерных приложений.
Если в поставку вашей операционной системы уже входит библиотека HDF, то вы можете использовать её.
Обратите внимание на то, что библиотека NCSA HDF собрана с целым рядом параметров, определённых в файле hlimits.h. В частности,hlimits.h определяет максимальное число открытых файлов:
# define MAX_FILE 32
Если вам нужно открывать одновременно большее число файлов в формате HDF4, то это значение следует изменить и перекомпилировать библиотеку HDF4 (при этом нет необходимости в пересборке GDAL, если она уже собрана с поддержкой разделяемой библиотеки HDF4).
-
Поддержка JPEG2000 основывается на библиотеке JasPer, доступной на своей домашней странице.
Сама по себе библиотека JasPer является транслятором между несколькими растровыми форматами файлов. GDAL использует только форматы JP2 и JPC.
Если вы хотите получить поддержку расширения GeoJP2, то вам потребуется модифицированная библиотека JasPer, которая может быть скачана отсюда: ftp://ftp.remotesensing.org/gdal/jasper-1.701.0.uuid.tar.gz
-
Драйвер формата MrSID требует декодирующую библиотеку LizardTech (DSDK). Это не свободное программное обеспечение, однако оно бесплатно доступно на сайте http://developer.lizardtech.com/. Если вы хотите создавать файлы в формате MrSID, вам потребуется кодирующая библиотека (ESDK). Свяжитесь с представителями компании LizardTech для выяснения условий её получения. Библиотеки MrSID распространяются в бинарном виде и, если вы используете GCC, убедитесь, что применяется тот же самый компилятор, который был использован для сборки SDK. Данная библиотека написана на C++, поэтому вы можете получить несовместимость в схеме именования символов при использовании различных версий GCC (2.95.x and 3.x).
-
Поддержка формата NetCDF требует библиотеку netCDF. После сборки и установки этой библиотеки используйте параметр "--with-netcdf=<path to install tree>" для конфигурирования GDAL. При одновременном использовании библиотек netCDF и HDF могут возникнуть конфликты связывания, поэтому такое использование может оказаться невозможным. Поддержка NetCDF не собиралась и не тестировалась в среде Windows.
GDAL поддерживает чтение и запись больших файлов (> 2GiB), если это возможно в вашей операционной системе. Информацию о поддержке больших файлов в системе Linux можно получить здесь: http://www.suse.de/~aj/linux_lfs.html. Вкратце: если вы работаете с ядром 2.4.x и glibc 2.2.x, то проблем быть не должно. Максимальный размер файла зависит от размера кластера файловой системы. Для файловой системы ext2 с кластером в 1 KiB это 16448 MiB, для ext2 с кластером 4 KiB это 2048 GiB. Другие файловые системы могут работать с файлами даже большего размера.
Информацию о поддержке больших файлов в Windows можно найти на страницах MSDN. Вкратце: максимальный размер файла на NTFS ограничен (2^64 - 1) байтами, на FAT32 и FAT16 это (2^32 - 1) байт. Поэтому не пытайтесь создавать файлы, большие, чем 4 GiB на FAT32. В некоторых случаях вы даже не получите сообщения об ошибке при переходе за барьер в 4GiB, и ваши данные будут потеряны. Это не ошибка в GDAL, это проблема Windows.
Generated for GDAL by
1.5.1.