<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.gis-lab.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LEXX413</id>
	<title>GIS-Lab - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.gis-lab.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LEXX413"/>
	<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/w/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/LEXX413"/>
	<updated>2026-04-04T13:43:43Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4654</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4654"/>
		<updated>2012-04-05T10:27:21Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Библиотека curl */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Введение == &lt;br /&gt;
В данной статье пойдет речь о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. Библиотека [http://gdal.org/ GDAL] - это библиотека для работы с растровыми географическими форматами файлов данных. GDAL распространяется [http://www.osgeo.org/ Open Source Geospatial Foundation] на условиях лицензии [http://trac.osgeo.org/gdal/wiki/FAQGeneral#WhatlicensedoesGDALOGRuse X/MIT] , то есть является проектом [http://www.opensource.org/ с открытым исходным кодом]. Как библиотека GDAL предоставляет вызывающему приложению [http://gdal.org/gdal_datamodel_ru.html единую обобщённую модель данных] для всех поддерживаемых форматов файлов данных. Помимо этого в состав GDAL входит [http://gdal.org/gdal_utilities.html набор вспомогательных программ], вызываемых из командной строки, для преобразования и обработки данных.&amp;lt;ref name=&amp;quot;gdal&amp;quot;&amp;gt;[http://gdal.org/index_ru.html GDAL - Geospatial Data Abstraction Library]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для сборки GDAL и библиотек от которых она зависит будет использоваться система сборки [http://www.cmake.org/ CMake]. CMake (от англ. cross platform make) — это кроссплатформенная система автоматизации сборки программного обеспечения из исходного кода. CMake не занимается непосредственно сборкой, a лишь генерирует файлы управления сборкой из файлов CMakeLists.txt&amp;lt;ref name=&amp;quot;cmake&amp;quot;&amp;gt;[http://ru.wikipedia.org/wiki/CMake CMake], Материал из Википедии — свободной энциклопедии&amp;lt;/ref&amp;gt;:&lt;br /&gt;
*Makefile в системах Unix для сборки с помощью make;&lt;br /&gt;
*файлы projects/workspaces в Windows для сборки с помощью Visual C++;&lt;br /&gt;
*проекты XCode в Mac OS X&lt;br /&gt;
&lt;br /&gt;
В настоящий момент не существует официального скрипта для сборки GDAL при помощи Cmake. Поэтому, данный метод следует рассматривать в качестве примера сборки и одного из вариантов (унифицированный способ сборки посредством CMake). &lt;br /&gt;
Кроме того, сборка представляет собой минимальный набор поддерживаемых растровых и векторных драйверов.&lt;br /&gt;
&lt;br /&gt;
== Структура библиотеки GDAL ==&lt;br /&gt;
Библиотека GDAL состоит из 3-х основных частей:&lt;br /&gt;
#CPL - базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
#OGR - работа с векторными форматами. Список форматов размещен здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
#GDAL - работа с растровыми форматами. Список форматов размещен здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff, jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следует понимать что такое драйвер. Драйвер - это отдельный плагин обеспечивающий поддержку формата из списков, приведенных выше. В этих списках можно посмотреть, что от чего зависит. Иногда драйвер не зависит ни от какой из сторонних библиотек и компилировать его просто. Иногда нужна еще отдельная библиотека или целый набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''О сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов). Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагается делать это все с использованием системы сборки CMake. Для большинства библиотек уже имеются скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно зайти в свойства и посмотреть, что и как.&lt;br /&gt;
&lt;br /&gt;
Поэтому скачиваем последнюю версию системы сборки CMake по адресу http://www.cmake.org/cmake/resources/software.html (на текущий момент последняя версия http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe) и ставим ее. &lt;br /&gt;
&lt;br /&gt;
'''Примечание.'''&lt;br /&gt;
CMake, как, впрочем, и другие системы сборки, поддерживает два способа сборки: при первом ('''In source''', in tree build) целевая программа собирается в тех же директориях, в которых расположены исходные тексты. В результате в директориях с исходниками остаются промежуточные файлы сборки. Второй вариант - сборка '''out of source''', при которой сборка выполняется в отдельной директории, в которой сохраняются все промежуточные файлы, а директория с иходными текстами остается в том же состоянии, что и до выполнения сборки.&amp;lt;ref name=&amp;quot;cmake-gui&amp;quot;&amp;gt;[http://symmetrica.net/cmake/CMake-2.htm CMake], Сборка In-source и Out-of-source&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В предложенной методике будет применяться сборка Out-of-source.&lt;br /&gt;
&lt;br /&gt;
== Сборка зависимых библиотек ==&lt;br /&gt;
=== Библиотека expat ===&lt;br /&gt;
Первой библиотекой будем компилировать '''expat'''.&lt;br /&gt;
&lt;br /&gt;
Скачиваем исходные тексты библиотеки отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ (актуальная версия на момент написания находится в файле под названием expat-2.0.1.tar.gz) и распаковываем в папку, где будут храниться все проекты для сборки библиотек. Например, по следующему пути&lt;br /&gt;
 C:\project\expat-2.0.1\&lt;br /&gt;
Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать исходные тексты и сопровождающие файлы (см. рис. 1), а не вложенная папка expat-2.0.1 (для данного примера).&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 1.JPG|мини|центр|750пкс|Рис. 1. Структура директории]]&lt;br /&gt;
&lt;br /&gt;
Далее скачиваем файл CMakeLists.txt ([[Файл:CMakeLists.zip]]) и помещаем в разархивированную папку expat-2.0.1.&lt;br /&gt;
&lt;br /&gt;
Запускаем CMake GUI и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это путь куда был распакован expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это папка, куда генерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку ''Configure'' и выбираем версию Visual Studio (в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 2.JPG|мини|центр|750пкс|Рис. 2. Окно интерфейса пользователя Cmake]]&lt;br /&gt;
&lt;br /&gt;
В папке ''build'' должен появиться фаил ''libexpat.sln''. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки ''Release'' вместо ''Debug'' и компилируем проект (нажимаем F7). &lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 3.JPG|мини|центр|750пкс|Рис. 3. Выбор типа сборки]]&lt;br /&gt;
&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки ''lib/Release'') должны появиться следующие файлы&lt;br /&gt;
*libexpat.dll&lt;br /&gt;
*libexpat.exp&lt;br /&gt;
*libexpat.lib&lt;br /&gt;
&lt;br /&gt;
Это был скомпилирован так называемая '''shared dll'''. Существует еще '''static dll''' - тогда на выходе получается только ''libexpat.lib''. &lt;br /&gt;
&lt;br /&gt;
Потом ''libexpat.dll'' надо будет скопировать в папку с вашей программой. Туда же надо будет скопирвоать все зависимые библиотеки.&lt;br /&gt;
&lt;br /&gt;
=== Библиотека zlib ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''zlib'''.&lt;br /&gt;
&lt;br /&gt;
Скачиваем ее отсюда http://zlib.net/ (актуальная на момент написания статьи версия http://zlib.net/zlib126.zip). Файл сценария CMake - CmakeLists.txt в архив уже включен. Распакуем по следующему пути: ''C:\project\zlib-1.2.6''.&lt;br /&gt;
&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
 CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сценарий CMake генерирует новый файл. После удаления zconf.h опять нажимаем ''Configure''. Процесс должен закончиться без ошибок. Далее запускаем ''Generate'' и переходим в папку ''build''. Открываем файл ''zlib.sln'' с помощью Visual Studio (далее VS), ставим тип сборки ''Release''. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого '''снимаем галочки''' с ''examles'' и ''minizip'' они нам не понадобятся (см. рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к ''zlib.h''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 4.JPG|мини|центр|750пкс|Рис. 4. Диспетчер конфигураций]]&lt;br /&gt;
&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации (эту папку необходимо создать самим).&lt;br /&gt;
&lt;br /&gt;
=== Библиотека geos ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''geos'''.&lt;br /&gt;
&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/geos/ (актуальная версия на момент написания статьи находится по адресу http://download.osgeo.org/geos/geos-3.3.2.tar.bz2). Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем галочку с BUILD_TESTING (см. рис. 5). &lt;br /&gt;
&lt;br /&gt;
'''Примечание''', чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. рис. 5).&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 5.JPG|мини|центр|750пкс|Рис. 5. Настройки GEOS в CMake-GUI]]&lt;br /&gt;
&lt;br /&gt;
Далее нажимаем Generate, открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'', выставляем конфигурацию ''Release'' и компилируем. Если у вас возникла ошибка:&lt;br /&gt;
&lt;br /&gt;
 Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static&lt;br /&gt;
&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
на&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
и скомпилируйте заново.&lt;br /&gt;
&lt;br /&gt;
Далее, если возникла ошибка&lt;br /&gt;
 Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit&lt;br /&gt;
&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
str[i] = std::toupper(str[i]);&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
&lt;br /&gt;
напишите&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
str[i] = toupper(str[i]);&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&lt;br /&gt;
&lt;br /&gt;
=== Библиотека curl ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''curl'''.&lt;br /&gt;
Скачиваем последнюю версию отсюда http://curl.haxx.se/download.html (актуальная версия на момент написания статьи находилась по следующему пути http://curl.haxx.se/download/curl-7.24.0.zip) и распакуем в ''C:\project\curl-7.24.0''. &lt;br /&gt;
&lt;br /&gt;
Запускаем CMake GUI, указываем пути и нажимаем Configure. Далее прописываем в свойствах&lt;br /&gt;
*WSOCK32_LIBRARY - WSOCK32.lib&lt;br /&gt;
*WS2_32_LIBRARY -  WS2_32.lib&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build'' &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\zlib-1.2.6\lib\Release\zlib.lib'' &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте (см. рис. 6). &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 6.JPG|мини|центр|750пкс|Рис. 6. Настройки CURL в CMake-GUI]]&lt;br /&gt;
&lt;br /&gt;
После того как все будет сделано, нажимайте ''Configure'', все должно закончиться без ошибок и потом ''Generate''. Далее открываем файл ''CURL.sln'' в папке ''build''. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем: &amp;lt;br /&amp;gt;&lt;br /&gt;
*WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
*WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Библиотека libjpeg ===&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем ''configurate'', затем ''Generate''. Идем в папку ''Debug'', открываем ''libjpeg.sln'', ставим ''Realese'' и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Библиотека libpng ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''libpng'''.&lt;br /&gt;
Скачиваем последнюю версию отсюда http://www.libpng.org/pub/png/libpng.html (актуальная версия на момент написания статьи находилась по следующему пути http://download.sourceforge.net/libpng/lpng159.zip). Распаковываем и запускаем CMake GUI, проводим конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configure и Generate. Далее открываем libpng.sln, ставим конфигурацию Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Библиотека libtiff ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''libtiff'''.&lt;br /&gt;
Скачиваем последнюю версию отсюда ftp://ftp.remotesensing.org/pub/libtiff (актуальная версия на момент написания статьи находилась по следующему пути ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip), распаковываем в ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и распаковываем как обычно [[Файл:Tiff.zip]]. Запускаем CMake, делаем ''Configure'' и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем ''Configure'' еще раз и ''Generate'', далее открываем ''libtiff.sln'' ставим конфигурацию ''Release'' и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Библиотека proj ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''proj'''.&lt;br /&gt;
Скачиваем последнюю версию отсюда http://trac.osgeo.org/proj/ (актуальная версия на момент написания статьи находилась по следующему пути http://download.osgeo.org/proj/proj-4.8.0.zip). Распаковываем, и кидаем туда этот файл [[Файл:CMakeListsproj.zip]], запускаем CMake, прописываем пути до proj, жмем ''Configure'' и ''Generate'', открываем ''proj4.sln'', ставим конфигурацию ''Release'' и компилируем.&lt;br /&gt;
&lt;br /&gt;
'''На этом вся подготовка закончена, у нас есть все необходимые библиотеки.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сборка GDAL ==&lt;br /&gt;
&lt;br /&gt;
Приступаем к сборке самого '''GDAL'''.&lt;br /&gt;
&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/gdal/wiki/DownloadSource последнюю версию на момент написания статьи gdal 1.9.0 ( http://download.osgeo.org/gdal/gdal190.zip ). Качаем архив [[Файл:Gdal_trank.zip]] . Распаковываем gdal в папку ''project''. В полученную папку ''C:\project\gdal-1.9.0'' распаковываем файлы из архива ''Gdal_trank.zip'' (папку cmake и файл CMakeLists).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запускаем CMake и как обычно прописываем 2 пути ''C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\build'', нажимаем ''Configure''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Когда выскочит ошибка, прописываем пути до '''zlib''': ''C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build'' и ''C:/project/zlib-1.2.6/lib/Release/zlib.lib'' в директориях соответственно ZLIB_INCLUDE_DIR и ZLIB_LIBRARY. Далее все пути надо будет прописывать примерно аналогично для директории INCLUDE и LIBRARY. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''CURL''' ''C:/project/curl-7.24.0/include'' и ''C:/project/curl-7.24.0/lib/Release/libcurl_imp.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''EXPAT''': ''C:/project/expat-2.0.1/lib/'' и ''C:/project/expat-2.0.1/lib/Release/libexpat.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''GEOS''': ''C:\project\geos-3.3.2\include'' и ''C:/project/geos-3.3.2/lib/Release/geos_c.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''PROJ''': ''C:\project\proj-4.8.0\src'' и ''C:/project/proj-4.8.0/lib/Release/proj4.lib''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку, идем в '''OGR''' и убираем галочку с OGR_PG.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''JPEG''': ''C:\project\jpeg-8d;C:\project\jpeg-8d\build'' и ''C:/project/jpeg-8d/lib/Release/libjpeg.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''TIFF''': ''C:\project\tiff-4.0.1\libtiff;C:\project\tiff-4.0.1\build'' и ''C:\project\tiff-4.0.1\lib\Release\libtiff.lib''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''PNG''', '''тут внимательно'''! Первая строчка - пути до LIBRARY: ''C:/project/lpng159/lib/Release/libpng15.lib'', вторая ''C:\project\lpng159;C:\project\lpng159\build''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', все должно закончиться успешно, нажимаем ''Generate''. Далее идем в папку ''C:\project\gdal-1.9.0\build'' и открываем файл ''gdallib.sln'' с помощью VS. Ставим конфигурацию ''Release'' и компилируем. Если все прошло без ошибок, '''вы собрали GDAL!'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь необходимо проверить работоспособность собранной библиотеки.&lt;br /&gt;
&lt;br /&gt;
== Тестовый пример == &lt;br /&gt;
&lt;br /&gt;
Сделаем тестовый пример. Исходный код берем отсюда: http://www.gdal.org/gdal_tutorial_ru.html.&amp;lt;br /&amp;gt;&lt;br /&gt;
Создадим консольный проект C++ CLR. Пропишем следующие пути:&amp;lt;br /&amp;gt;&lt;br /&gt;
выбираем в меню Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;Компоновщик-&amp;gt;Ввод. На этой странице в дополнительных зависимостях прописываем ''C:\project\gdal-1.9.0\build\Release\gdal19.lib''&amp;lt;br /&amp;gt;&lt;br /&gt;
теперь в Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;C/C++ в Дополнительные зависимости включаемых файлов прописать&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\build\port\''&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\alg\''&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\''&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\''gcore&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\''port&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же необходимо в папку, где содержатся откомпилированные файлы проекта (обычно папка с именем конфигурации ''Release'' или ''Debug'') положить сформированные dll, собрынные нами ранее:&amp;lt;br /&amp;gt;&lt;br /&gt;
*gdal19.dll&lt;br /&gt;
*geos.dll&lt;br /&gt;
*geos_c.dll&lt;br /&gt;
*libcurl.dll&lt;br /&gt;
*libexpat.dll&lt;br /&gt;
*libjpeg.dll&lt;br /&gt;
*libpng15.dll&lt;br /&gt;
*libtiff.dll&lt;br /&gt;
*proj4.dll&lt;br /&gt;
*zlib1.dll&lt;br /&gt;
&lt;br /&gt;
Так же в эту папку положите какой-нибудь рисунок и задайте путь до него в тексте программы. Например, ''1.JPG''.&lt;br /&gt;
&lt;br /&gt;
Так выглядит тестовый код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
#include &amp;quot;gdal_priv.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
int main(array&amp;lt;System::String ^&amp;gt; ^args)&lt;br /&gt;
{&lt;br /&gt;
    GDALDataset  *poDataset;&lt;br /&gt;
    GDALAllRegister();&lt;br /&gt;
    poDataset = (GDALDataset *) GDALOpen( &amp;quot;1.JPG&amp;quot;, GA_ReadOnly ); // здесь надо указать путь до изображения&lt;br /&gt;
	 if( poDataset == NULL )&lt;br /&gt;
    {&lt;br /&gt;
       return 0;&lt;br /&gt;
    }&lt;br /&gt;
	double        adfGeoTransform[6];&lt;br /&gt;
    printf( &amp;quot;Драйвер: %s/%s\n&amp;quot;,&lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetDescription(), &lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetMetadataItem( GDAL_DMD_LONGNAME ) );&lt;br /&gt;
    printf( &amp;quot;Размер %dx%dx%d\n&amp;quot;, &lt;br /&gt;
            poDataset-&amp;gt;GetRasterXSize(), poDataset-&amp;gt;GetRasterYSize(),&lt;br /&gt;
            poDataset-&amp;gt;GetRasterCount() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetProjectionRef()  != NULL )&lt;br /&gt;
        printf( &amp;quot;Проекция \&amp;quot;%s\&amp;quot;\n&amp;quot;, poDataset-&amp;gt;GetProjectionRef() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetGeoTransform( adfGeoTransform ) == CE_None )&lt;br /&gt;
    {&lt;br /&gt;
        printf( &amp;quot;Начало координат (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[0], adfGeoTransform[3] );&lt;br /&gt;
        printf( &amp;quot;Размер пиксела (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[1], adfGeoTransform[5] );&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Заключение ==&lt;br /&gt;
В статье мы научились собирать библиотеку '''GDAL''' и библиотеки от которых она зависит, а также сделали тестовый пример для работы с ней. &lt;br /&gt;
Комментарии, исправления, отзывы и пожелания '''приветствуются'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Огромное СПАСИБО за помощь со сборкой и терпение пользователю ГИС-ЛАБ Bishop.''' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Автор: Евгений Боровенский (LEXX413).&lt;br /&gt;
&lt;br /&gt;
Соавтор: Дмитрий Барышников (Bishop).&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4653</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4653"/>
		<updated>2012-04-05T10:27:11Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Библиотека geos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Введение == &lt;br /&gt;
В данной статье пойдет речь о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. Библиотека [http://gdal.org/ GDAL] - это библиотека для работы с растровыми географическими форматами файлов данных. GDAL распространяется [http://www.osgeo.org/ Open Source Geospatial Foundation] на условиях лицензии [http://trac.osgeo.org/gdal/wiki/FAQGeneral#WhatlicensedoesGDALOGRuse X/MIT] , то есть является проектом [http://www.opensource.org/ с открытым исходным кодом]. Как библиотека GDAL предоставляет вызывающему приложению [http://gdal.org/gdal_datamodel_ru.html единую обобщённую модель данных] для всех поддерживаемых форматов файлов данных. Помимо этого в состав GDAL входит [http://gdal.org/gdal_utilities.html набор вспомогательных программ], вызываемых из командной строки, для преобразования и обработки данных.&amp;lt;ref name=&amp;quot;gdal&amp;quot;&amp;gt;[http://gdal.org/index_ru.html GDAL - Geospatial Data Abstraction Library]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для сборки GDAL и библиотек от которых она зависит будет использоваться система сборки [http://www.cmake.org/ CMake]. CMake (от англ. cross platform make) — это кроссплатформенная система автоматизации сборки программного обеспечения из исходного кода. CMake не занимается непосредственно сборкой, a лишь генерирует файлы управления сборкой из файлов CMakeLists.txt&amp;lt;ref name=&amp;quot;cmake&amp;quot;&amp;gt;[http://ru.wikipedia.org/wiki/CMake CMake], Материал из Википедии — свободной энциклопедии&amp;lt;/ref&amp;gt;:&lt;br /&gt;
*Makefile в системах Unix для сборки с помощью make;&lt;br /&gt;
*файлы projects/workspaces в Windows для сборки с помощью Visual C++;&lt;br /&gt;
*проекты XCode в Mac OS X&lt;br /&gt;
&lt;br /&gt;
В настоящий момент не существует официального скрипта для сборки GDAL при помощи Cmake. Поэтому, данный метод следует рассматривать в качестве примера сборки и одного из вариантов (унифицированный способ сборки посредством CMake). &lt;br /&gt;
Кроме того, сборка представляет собой минимальный набор поддерживаемых растровых и векторных драйверов.&lt;br /&gt;
&lt;br /&gt;
== Структура библиотеки GDAL ==&lt;br /&gt;
Библиотека GDAL состоит из 3-х основных частей:&lt;br /&gt;
#CPL - базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
#OGR - работа с векторными форматами. Список форматов размещен здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
#GDAL - работа с растровыми форматами. Список форматов размещен здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff, jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следует понимать что такое драйвер. Драйвер - это отдельный плагин обеспечивающий поддержку формата из списков, приведенных выше. В этих списках можно посмотреть, что от чего зависит. Иногда драйвер не зависит ни от какой из сторонних библиотек и компилировать его просто. Иногда нужна еще отдельная библиотека или целый набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''О сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов). Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагается делать это все с использованием системы сборки CMake. Для большинства библиотек уже имеются скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно зайти в свойства и посмотреть, что и как.&lt;br /&gt;
&lt;br /&gt;
Поэтому скачиваем последнюю версию системы сборки CMake по адресу http://www.cmake.org/cmake/resources/software.html (на текущий момент последняя версия http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe) и ставим ее. &lt;br /&gt;
&lt;br /&gt;
'''Примечание.'''&lt;br /&gt;
CMake, как, впрочем, и другие системы сборки, поддерживает два способа сборки: при первом ('''In source''', in tree build) целевая программа собирается в тех же директориях, в которых расположены исходные тексты. В результате в директориях с исходниками остаются промежуточные файлы сборки. Второй вариант - сборка '''out of source''', при которой сборка выполняется в отдельной директории, в которой сохраняются все промежуточные файлы, а директория с иходными текстами остается в том же состоянии, что и до выполнения сборки.&amp;lt;ref name=&amp;quot;cmake-gui&amp;quot;&amp;gt;[http://symmetrica.net/cmake/CMake-2.htm CMake], Сборка In-source и Out-of-source&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В предложенной методике будет применяться сборка Out-of-source.&lt;br /&gt;
&lt;br /&gt;
== Сборка зависимых библиотек ==&lt;br /&gt;
=== Библиотека expat ===&lt;br /&gt;
Первой библиотекой будем компилировать '''expat'''.&lt;br /&gt;
&lt;br /&gt;
Скачиваем исходные тексты библиотеки отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ (актуальная версия на момент написания находится в файле под названием expat-2.0.1.tar.gz) и распаковываем в папку, где будут храниться все проекты для сборки библиотек. Например, по следующему пути&lt;br /&gt;
 C:\project\expat-2.0.1\&lt;br /&gt;
Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать исходные тексты и сопровождающие файлы (см. рис. 1), а не вложенная папка expat-2.0.1 (для данного примера).&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 1.JPG|мини|центр|750пкс|Рис. 1. Структура директории]]&lt;br /&gt;
&lt;br /&gt;
Далее скачиваем файл CMakeLists.txt ([[Файл:CMakeLists.zip]]) и помещаем в разархивированную папку expat-2.0.1.&lt;br /&gt;
&lt;br /&gt;
Запускаем CMake GUI и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это путь куда был распакован expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это папка, куда генерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку ''Configure'' и выбираем версию Visual Studio (в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 2.JPG|мини|центр|750пкс|Рис. 2. Окно интерфейса пользователя Cmake]]&lt;br /&gt;
&lt;br /&gt;
В папке ''build'' должен появиться фаил ''libexpat.sln''. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки ''Release'' вместо ''Debug'' и компилируем проект (нажимаем F7). &lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 3.JPG|мини|центр|750пкс|Рис. 3. Выбор типа сборки]]&lt;br /&gt;
&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки ''lib/Release'') должны появиться следующие файлы&lt;br /&gt;
*libexpat.dll&lt;br /&gt;
*libexpat.exp&lt;br /&gt;
*libexpat.lib&lt;br /&gt;
&lt;br /&gt;
Это был скомпилирован так называемая '''shared dll'''. Существует еще '''static dll''' - тогда на выходе получается только ''libexpat.lib''. &lt;br /&gt;
&lt;br /&gt;
Потом ''libexpat.dll'' надо будет скопировать в папку с вашей программой. Туда же надо будет скопирвоать все зависимые библиотеки.&lt;br /&gt;
&lt;br /&gt;
=== Библиотека zlib ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''zlib'''.&lt;br /&gt;
&lt;br /&gt;
Скачиваем ее отсюда http://zlib.net/ (актуальная на момент написания статьи версия http://zlib.net/zlib126.zip). Файл сценария CMake - CmakeLists.txt в архив уже включен. Распакуем по следующему пути: ''C:\project\zlib-1.2.6''.&lt;br /&gt;
&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
 CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сценарий CMake генерирует новый файл. После удаления zconf.h опять нажимаем ''Configure''. Процесс должен закончиться без ошибок. Далее запускаем ''Generate'' и переходим в папку ''build''. Открываем файл ''zlib.sln'' с помощью Visual Studio (далее VS), ставим тип сборки ''Release''. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого '''снимаем галочки''' с ''examles'' и ''minizip'' они нам не понадобятся (см. рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к ''zlib.h''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 4.JPG|мини|центр|750пкс|Рис. 4. Диспетчер конфигураций]]&lt;br /&gt;
&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации (эту папку необходимо создать самим).&lt;br /&gt;
&lt;br /&gt;
=== Библиотека geos ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''geos'''.&lt;br /&gt;
&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/geos/ (актуальная версия на момент написания статьи находится по адресу http://download.osgeo.org/geos/geos-3.3.2.tar.bz2). Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем галочку с BUILD_TESTING (см. рис. 5). &lt;br /&gt;
&lt;br /&gt;
'''Примечание''', чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. рис. 5).&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 5.JPG|мини|центр|750пкс|Рис. 5. Настройки GEOS в CMake-GUI]]&lt;br /&gt;
&lt;br /&gt;
Далее нажимаем Generate, открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'', выставляем конфигурацию ''Release'' и компилируем. Если у вас возникла ошибка:&lt;br /&gt;
&lt;br /&gt;
 Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static&lt;br /&gt;
&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
на&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
и скомпилируйте заново.&lt;br /&gt;
&lt;br /&gt;
Далее, если возникла ошибка&lt;br /&gt;
 Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit&lt;br /&gt;
&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
str[i] = std::toupper(str[i]);&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
&lt;br /&gt;
напишите&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
str[i] = toupper(str[i]);&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&lt;br /&gt;
&lt;br /&gt;
=== Библиотека curl ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''curl'''.&lt;br /&gt;
Скачиваем последнюю версию отсюда http://curl.haxx.se/download.html (актуальная версия на момент написания статьи находилась по следующему пути http://curl.haxx.se/download/curl-7.24.0.zip) и распакуем в ''C:\project\curl-7.24.0''. &lt;br /&gt;
&lt;br /&gt;
Запускаем CMake GUI, указываем пути и нажимаем Configure. Далее прописываем в свойствах&lt;br /&gt;
*WSOCK32_LIBRARY - WSOCK32.lib&lt;br /&gt;
*WS2_32_LIBRARY -  WS2_32.lib&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build'' &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\zlib-1.2.6\lib\Release\zlib.lib'' &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте (см. рис. 6). &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 6.JPG|мини|центр|300пкс|Рис. 6. Настройки CURL в CMake-GUI]]&lt;br /&gt;
&lt;br /&gt;
После того как все будет сделано, нажимайте ''Configure'', все должно закончиться без ошибок и потом ''Generate''. Далее открываем файл ''CURL.sln'' в папке ''build''. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем: &amp;lt;br /&amp;gt;&lt;br /&gt;
*WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
*WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Библиотека libjpeg ===&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем ''configurate'', затем ''Generate''. Идем в папку ''Debug'', открываем ''libjpeg.sln'', ставим ''Realese'' и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Библиотека libpng ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''libpng'''.&lt;br /&gt;
Скачиваем последнюю версию отсюда http://www.libpng.org/pub/png/libpng.html (актуальная версия на момент написания статьи находилась по следующему пути http://download.sourceforge.net/libpng/lpng159.zip). Распаковываем и запускаем CMake GUI, проводим конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configure и Generate. Далее открываем libpng.sln, ставим конфигурацию Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Библиотека libtiff ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''libtiff'''.&lt;br /&gt;
Скачиваем последнюю версию отсюда ftp://ftp.remotesensing.org/pub/libtiff (актуальная версия на момент написания статьи находилась по следующему пути ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip), распаковываем в ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и распаковываем как обычно [[Файл:Tiff.zip]]. Запускаем CMake, делаем ''Configure'' и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем ''Configure'' еще раз и ''Generate'', далее открываем ''libtiff.sln'' ставим конфигурацию ''Release'' и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Библиотека proj ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''proj'''.&lt;br /&gt;
Скачиваем последнюю версию отсюда http://trac.osgeo.org/proj/ (актуальная версия на момент написания статьи находилась по следующему пути http://download.osgeo.org/proj/proj-4.8.0.zip). Распаковываем, и кидаем туда этот файл [[Файл:CMakeListsproj.zip]], запускаем CMake, прописываем пути до proj, жмем ''Configure'' и ''Generate'', открываем ''proj4.sln'', ставим конфигурацию ''Release'' и компилируем.&lt;br /&gt;
&lt;br /&gt;
'''На этом вся подготовка закончена, у нас есть все необходимые библиотеки.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сборка GDAL ==&lt;br /&gt;
&lt;br /&gt;
Приступаем к сборке самого '''GDAL'''.&lt;br /&gt;
&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/gdal/wiki/DownloadSource последнюю версию на момент написания статьи gdal 1.9.0 ( http://download.osgeo.org/gdal/gdal190.zip ). Качаем архив [[Файл:Gdal_trank.zip]] . Распаковываем gdal в папку ''project''. В полученную папку ''C:\project\gdal-1.9.0'' распаковываем файлы из архива ''Gdal_trank.zip'' (папку cmake и файл CMakeLists).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запускаем CMake и как обычно прописываем 2 пути ''C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\build'', нажимаем ''Configure''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Когда выскочит ошибка, прописываем пути до '''zlib''': ''C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build'' и ''C:/project/zlib-1.2.6/lib/Release/zlib.lib'' в директориях соответственно ZLIB_INCLUDE_DIR и ZLIB_LIBRARY. Далее все пути надо будет прописывать примерно аналогично для директории INCLUDE и LIBRARY. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''CURL''' ''C:/project/curl-7.24.0/include'' и ''C:/project/curl-7.24.0/lib/Release/libcurl_imp.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''EXPAT''': ''C:/project/expat-2.0.1/lib/'' и ''C:/project/expat-2.0.1/lib/Release/libexpat.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''GEOS''': ''C:\project\geos-3.3.2\include'' и ''C:/project/geos-3.3.2/lib/Release/geos_c.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''PROJ''': ''C:\project\proj-4.8.0\src'' и ''C:/project/proj-4.8.0/lib/Release/proj4.lib''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку, идем в '''OGR''' и убираем галочку с OGR_PG.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''JPEG''': ''C:\project\jpeg-8d;C:\project\jpeg-8d\build'' и ''C:/project/jpeg-8d/lib/Release/libjpeg.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''TIFF''': ''C:\project\tiff-4.0.1\libtiff;C:\project\tiff-4.0.1\build'' и ''C:\project\tiff-4.0.1\lib\Release\libtiff.lib''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''PNG''', '''тут внимательно'''! Первая строчка - пути до LIBRARY: ''C:/project/lpng159/lib/Release/libpng15.lib'', вторая ''C:\project\lpng159;C:\project\lpng159\build''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', все должно закончиться успешно, нажимаем ''Generate''. Далее идем в папку ''C:\project\gdal-1.9.0\build'' и открываем файл ''gdallib.sln'' с помощью VS. Ставим конфигурацию ''Release'' и компилируем. Если все прошло без ошибок, '''вы собрали GDAL!'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь необходимо проверить работоспособность собранной библиотеки.&lt;br /&gt;
&lt;br /&gt;
== Тестовый пример == &lt;br /&gt;
&lt;br /&gt;
Сделаем тестовый пример. Исходный код берем отсюда: http://www.gdal.org/gdal_tutorial_ru.html.&amp;lt;br /&amp;gt;&lt;br /&gt;
Создадим консольный проект C++ CLR. Пропишем следующие пути:&amp;lt;br /&amp;gt;&lt;br /&gt;
выбираем в меню Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;Компоновщик-&amp;gt;Ввод. На этой странице в дополнительных зависимостях прописываем ''C:\project\gdal-1.9.0\build\Release\gdal19.lib''&amp;lt;br /&amp;gt;&lt;br /&gt;
теперь в Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;C/C++ в Дополнительные зависимости включаемых файлов прописать&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\build\port\''&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\alg\''&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\''&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\''gcore&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\''port&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же необходимо в папку, где содержатся откомпилированные файлы проекта (обычно папка с именем конфигурации ''Release'' или ''Debug'') положить сформированные dll, собрынные нами ранее:&amp;lt;br /&amp;gt;&lt;br /&gt;
*gdal19.dll&lt;br /&gt;
*geos.dll&lt;br /&gt;
*geos_c.dll&lt;br /&gt;
*libcurl.dll&lt;br /&gt;
*libexpat.dll&lt;br /&gt;
*libjpeg.dll&lt;br /&gt;
*libpng15.dll&lt;br /&gt;
*libtiff.dll&lt;br /&gt;
*proj4.dll&lt;br /&gt;
*zlib1.dll&lt;br /&gt;
&lt;br /&gt;
Так же в эту папку положите какой-нибудь рисунок и задайте путь до него в тексте программы. Например, ''1.JPG''.&lt;br /&gt;
&lt;br /&gt;
Так выглядит тестовый код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
#include &amp;quot;gdal_priv.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
int main(array&amp;lt;System::String ^&amp;gt; ^args)&lt;br /&gt;
{&lt;br /&gt;
    GDALDataset  *poDataset;&lt;br /&gt;
    GDALAllRegister();&lt;br /&gt;
    poDataset = (GDALDataset *) GDALOpen( &amp;quot;1.JPG&amp;quot;, GA_ReadOnly ); // здесь надо указать путь до изображения&lt;br /&gt;
	 if( poDataset == NULL )&lt;br /&gt;
    {&lt;br /&gt;
       return 0;&lt;br /&gt;
    }&lt;br /&gt;
	double        adfGeoTransform[6];&lt;br /&gt;
    printf( &amp;quot;Драйвер: %s/%s\n&amp;quot;,&lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetDescription(), &lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetMetadataItem( GDAL_DMD_LONGNAME ) );&lt;br /&gt;
    printf( &amp;quot;Размер %dx%dx%d\n&amp;quot;, &lt;br /&gt;
            poDataset-&amp;gt;GetRasterXSize(), poDataset-&amp;gt;GetRasterYSize(),&lt;br /&gt;
            poDataset-&amp;gt;GetRasterCount() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetProjectionRef()  != NULL )&lt;br /&gt;
        printf( &amp;quot;Проекция \&amp;quot;%s\&amp;quot;\n&amp;quot;, poDataset-&amp;gt;GetProjectionRef() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetGeoTransform( adfGeoTransform ) == CE_None )&lt;br /&gt;
    {&lt;br /&gt;
        printf( &amp;quot;Начало координат (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[0], adfGeoTransform[3] );&lt;br /&gt;
        printf( &amp;quot;Размер пиксела (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[1], adfGeoTransform[5] );&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Заключение ==&lt;br /&gt;
В статье мы научились собирать библиотеку '''GDAL''' и библиотеки от которых она зависит, а также сделали тестовый пример для работы с ней. &lt;br /&gt;
Комментарии, исправления, отзывы и пожелания '''приветствуются'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Огромное СПАСИБО за помощь со сборкой и терпение пользователю ГИС-ЛАБ Bishop.''' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Автор: Евгений Боровенский (LEXX413).&lt;br /&gt;
&lt;br /&gt;
Соавтор: Дмитрий Барышников (Bishop).&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4652</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4652"/>
		<updated>2012-04-05T10:26:59Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Библиотека zlib */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Введение == &lt;br /&gt;
В данной статье пойдет речь о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. Библиотека [http://gdal.org/ GDAL] - это библиотека для работы с растровыми географическими форматами файлов данных. GDAL распространяется [http://www.osgeo.org/ Open Source Geospatial Foundation] на условиях лицензии [http://trac.osgeo.org/gdal/wiki/FAQGeneral#WhatlicensedoesGDALOGRuse X/MIT] , то есть является проектом [http://www.opensource.org/ с открытым исходным кодом]. Как библиотека GDAL предоставляет вызывающему приложению [http://gdal.org/gdal_datamodel_ru.html единую обобщённую модель данных] для всех поддерживаемых форматов файлов данных. Помимо этого в состав GDAL входит [http://gdal.org/gdal_utilities.html набор вспомогательных программ], вызываемых из командной строки, для преобразования и обработки данных.&amp;lt;ref name=&amp;quot;gdal&amp;quot;&amp;gt;[http://gdal.org/index_ru.html GDAL - Geospatial Data Abstraction Library]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для сборки GDAL и библиотек от которых она зависит будет использоваться система сборки [http://www.cmake.org/ CMake]. CMake (от англ. cross platform make) — это кроссплатформенная система автоматизации сборки программного обеспечения из исходного кода. CMake не занимается непосредственно сборкой, a лишь генерирует файлы управления сборкой из файлов CMakeLists.txt&amp;lt;ref name=&amp;quot;cmake&amp;quot;&amp;gt;[http://ru.wikipedia.org/wiki/CMake CMake], Материал из Википедии — свободной энциклопедии&amp;lt;/ref&amp;gt;:&lt;br /&gt;
*Makefile в системах Unix для сборки с помощью make;&lt;br /&gt;
*файлы projects/workspaces в Windows для сборки с помощью Visual C++;&lt;br /&gt;
*проекты XCode в Mac OS X&lt;br /&gt;
&lt;br /&gt;
В настоящий момент не существует официального скрипта для сборки GDAL при помощи Cmake. Поэтому, данный метод следует рассматривать в качестве примера сборки и одного из вариантов (унифицированный способ сборки посредством CMake). &lt;br /&gt;
Кроме того, сборка представляет собой минимальный набор поддерживаемых растровых и векторных драйверов.&lt;br /&gt;
&lt;br /&gt;
== Структура библиотеки GDAL ==&lt;br /&gt;
Библиотека GDAL состоит из 3-х основных частей:&lt;br /&gt;
#CPL - базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
#OGR - работа с векторными форматами. Список форматов размещен здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
#GDAL - работа с растровыми форматами. Список форматов размещен здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff, jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следует понимать что такое драйвер. Драйвер - это отдельный плагин обеспечивающий поддержку формата из списков, приведенных выше. В этих списках можно посмотреть, что от чего зависит. Иногда драйвер не зависит ни от какой из сторонних библиотек и компилировать его просто. Иногда нужна еще отдельная библиотека или целый набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''О сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов). Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагается делать это все с использованием системы сборки CMake. Для большинства библиотек уже имеются скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно зайти в свойства и посмотреть, что и как.&lt;br /&gt;
&lt;br /&gt;
Поэтому скачиваем последнюю версию системы сборки CMake по адресу http://www.cmake.org/cmake/resources/software.html (на текущий момент последняя версия http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe) и ставим ее. &lt;br /&gt;
&lt;br /&gt;
'''Примечание.'''&lt;br /&gt;
CMake, как, впрочем, и другие системы сборки, поддерживает два способа сборки: при первом ('''In source''', in tree build) целевая программа собирается в тех же директориях, в которых расположены исходные тексты. В результате в директориях с исходниками остаются промежуточные файлы сборки. Второй вариант - сборка '''out of source''', при которой сборка выполняется в отдельной директории, в которой сохраняются все промежуточные файлы, а директория с иходными текстами остается в том же состоянии, что и до выполнения сборки.&amp;lt;ref name=&amp;quot;cmake-gui&amp;quot;&amp;gt;[http://symmetrica.net/cmake/CMake-2.htm CMake], Сборка In-source и Out-of-source&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В предложенной методике будет применяться сборка Out-of-source.&lt;br /&gt;
&lt;br /&gt;
== Сборка зависимых библиотек ==&lt;br /&gt;
=== Библиотека expat ===&lt;br /&gt;
Первой библиотекой будем компилировать '''expat'''.&lt;br /&gt;
&lt;br /&gt;
Скачиваем исходные тексты библиотеки отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ (актуальная версия на момент написания находится в файле под названием expat-2.0.1.tar.gz) и распаковываем в папку, где будут храниться все проекты для сборки библиотек. Например, по следующему пути&lt;br /&gt;
 C:\project\expat-2.0.1\&lt;br /&gt;
Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать исходные тексты и сопровождающие файлы (см. рис. 1), а не вложенная папка expat-2.0.1 (для данного примера).&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 1.JPG|мини|центр|750пкс|Рис. 1. Структура директории]]&lt;br /&gt;
&lt;br /&gt;
Далее скачиваем файл CMakeLists.txt ([[Файл:CMakeLists.zip]]) и помещаем в разархивированную папку expat-2.0.1.&lt;br /&gt;
&lt;br /&gt;
Запускаем CMake GUI и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это путь куда был распакован expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это папка, куда генерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку ''Configure'' и выбираем версию Visual Studio (в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 2.JPG|мини|центр|750пкс|Рис. 2. Окно интерфейса пользователя Cmake]]&lt;br /&gt;
&lt;br /&gt;
В папке ''build'' должен появиться фаил ''libexpat.sln''. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки ''Release'' вместо ''Debug'' и компилируем проект (нажимаем F7). &lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 3.JPG|мини|центр|750пкс|Рис. 3. Выбор типа сборки]]&lt;br /&gt;
&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки ''lib/Release'') должны появиться следующие файлы&lt;br /&gt;
*libexpat.dll&lt;br /&gt;
*libexpat.exp&lt;br /&gt;
*libexpat.lib&lt;br /&gt;
&lt;br /&gt;
Это был скомпилирован так называемая '''shared dll'''. Существует еще '''static dll''' - тогда на выходе получается только ''libexpat.lib''. &lt;br /&gt;
&lt;br /&gt;
Потом ''libexpat.dll'' надо будет скопировать в папку с вашей программой. Туда же надо будет скопирвоать все зависимые библиотеки.&lt;br /&gt;
&lt;br /&gt;
=== Библиотека zlib ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''zlib'''.&lt;br /&gt;
&lt;br /&gt;
Скачиваем ее отсюда http://zlib.net/ (актуальная на момент написания статьи версия http://zlib.net/zlib126.zip). Файл сценария CMake - CmakeLists.txt в архив уже включен. Распакуем по следующему пути: ''C:\project\zlib-1.2.6''.&lt;br /&gt;
&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
 CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сценарий CMake генерирует новый файл. После удаления zconf.h опять нажимаем ''Configure''. Процесс должен закончиться без ошибок. Далее запускаем ''Generate'' и переходим в папку ''build''. Открываем файл ''zlib.sln'' с помощью Visual Studio (далее VS), ставим тип сборки ''Release''. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого '''снимаем галочки''' с ''examles'' и ''minizip'' они нам не понадобятся (см. рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к ''zlib.h''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 4.JPG|мини|центр|750пкс|Рис. 4. Диспетчер конфигураций]]&lt;br /&gt;
&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации (эту папку необходимо создать самим).&lt;br /&gt;
&lt;br /&gt;
=== Библиотека geos ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''geos'''.&lt;br /&gt;
&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/geos/ (актуальная версия на момент написания статьи находится по адресу http://download.osgeo.org/geos/geos-3.3.2.tar.bz2). Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем галочку с BUILD_TESTING (см. рис. 5). &lt;br /&gt;
&lt;br /&gt;
'''Примечание''', чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. рис. 5).&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 5.JPG|мини|центр|300пкс|Рис. 5. Настройки GEOS в CMake-GUI]]&lt;br /&gt;
&lt;br /&gt;
Далее нажимаем Generate, открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'', выставляем конфигурацию ''Release'' и компилируем. Если у вас возникла ошибка:&lt;br /&gt;
&lt;br /&gt;
 Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static&lt;br /&gt;
&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
на&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
и скомпилируйте заново.&lt;br /&gt;
&lt;br /&gt;
Далее, если возникла ошибка&lt;br /&gt;
 Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit&lt;br /&gt;
&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
str[i] = std::toupper(str[i]);&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
&lt;br /&gt;
напишите&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
str[i] = toupper(str[i]);&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&lt;br /&gt;
&lt;br /&gt;
=== Библиотека curl ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''curl'''.&lt;br /&gt;
Скачиваем последнюю версию отсюда http://curl.haxx.se/download.html (актуальная версия на момент написания статьи находилась по следующему пути http://curl.haxx.se/download/curl-7.24.0.zip) и распакуем в ''C:\project\curl-7.24.0''. &lt;br /&gt;
&lt;br /&gt;
Запускаем CMake GUI, указываем пути и нажимаем Configure. Далее прописываем в свойствах&lt;br /&gt;
*WSOCK32_LIBRARY - WSOCK32.lib&lt;br /&gt;
*WS2_32_LIBRARY -  WS2_32.lib&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build'' &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\zlib-1.2.6\lib\Release\zlib.lib'' &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте (см. рис. 6). &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 6.JPG|мини|центр|300пкс|Рис. 6. Настройки CURL в CMake-GUI]]&lt;br /&gt;
&lt;br /&gt;
После того как все будет сделано, нажимайте ''Configure'', все должно закончиться без ошибок и потом ''Generate''. Далее открываем файл ''CURL.sln'' в папке ''build''. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем: &amp;lt;br /&amp;gt;&lt;br /&gt;
*WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
*WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Библиотека libjpeg ===&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем ''configurate'', затем ''Generate''. Идем в папку ''Debug'', открываем ''libjpeg.sln'', ставим ''Realese'' и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Библиотека libpng ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''libpng'''.&lt;br /&gt;
Скачиваем последнюю версию отсюда http://www.libpng.org/pub/png/libpng.html (актуальная версия на момент написания статьи находилась по следующему пути http://download.sourceforge.net/libpng/lpng159.zip). Распаковываем и запускаем CMake GUI, проводим конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configure и Generate. Далее открываем libpng.sln, ставим конфигурацию Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Библиотека libtiff ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''libtiff'''.&lt;br /&gt;
Скачиваем последнюю версию отсюда ftp://ftp.remotesensing.org/pub/libtiff (актуальная версия на момент написания статьи находилась по следующему пути ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip), распаковываем в ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и распаковываем как обычно [[Файл:Tiff.zip]]. Запускаем CMake, делаем ''Configure'' и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем ''Configure'' еще раз и ''Generate'', далее открываем ''libtiff.sln'' ставим конфигурацию ''Release'' и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Библиотека proj ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''proj'''.&lt;br /&gt;
Скачиваем последнюю версию отсюда http://trac.osgeo.org/proj/ (актуальная версия на момент написания статьи находилась по следующему пути http://download.osgeo.org/proj/proj-4.8.0.zip). Распаковываем, и кидаем туда этот файл [[Файл:CMakeListsproj.zip]], запускаем CMake, прописываем пути до proj, жмем ''Configure'' и ''Generate'', открываем ''proj4.sln'', ставим конфигурацию ''Release'' и компилируем.&lt;br /&gt;
&lt;br /&gt;
'''На этом вся подготовка закончена, у нас есть все необходимые библиотеки.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сборка GDAL ==&lt;br /&gt;
&lt;br /&gt;
Приступаем к сборке самого '''GDAL'''.&lt;br /&gt;
&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/gdal/wiki/DownloadSource последнюю версию на момент написания статьи gdal 1.9.0 ( http://download.osgeo.org/gdal/gdal190.zip ). Качаем архив [[Файл:Gdal_trank.zip]] . Распаковываем gdal в папку ''project''. В полученную папку ''C:\project\gdal-1.9.0'' распаковываем файлы из архива ''Gdal_trank.zip'' (папку cmake и файл CMakeLists).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запускаем CMake и как обычно прописываем 2 пути ''C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\build'', нажимаем ''Configure''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Когда выскочит ошибка, прописываем пути до '''zlib''': ''C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build'' и ''C:/project/zlib-1.2.6/lib/Release/zlib.lib'' в директориях соответственно ZLIB_INCLUDE_DIR и ZLIB_LIBRARY. Далее все пути надо будет прописывать примерно аналогично для директории INCLUDE и LIBRARY. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''CURL''' ''C:/project/curl-7.24.0/include'' и ''C:/project/curl-7.24.0/lib/Release/libcurl_imp.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''EXPAT''': ''C:/project/expat-2.0.1/lib/'' и ''C:/project/expat-2.0.1/lib/Release/libexpat.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''GEOS''': ''C:\project\geos-3.3.2\include'' и ''C:/project/geos-3.3.2/lib/Release/geos_c.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''PROJ''': ''C:\project\proj-4.8.0\src'' и ''C:/project/proj-4.8.0/lib/Release/proj4.lib''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку, идем в '''OGR''' и убираем галочку с OGR_PG.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''JPEG''': ''C:\project\jpeg-8d;C:\project\jpeg-8d\build'' и ''C:/project/jpeg-8d/lib/Release/libjpeg.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''TIFF''': ''C:\project\tiff-4.0.1\libtiff;C:\project\tiff-4.0.1\build'' и ''C:\project\tiff-4.0.1\lib\Release\libtiff.lib''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''PNG''', '''тут внимательно'''! Первая строчка - пути до LIBRARY: ''C:/project/lpng159/lib/Release/libpng15.lib'', вторая ''C:\project\lpng159;C:\project\lpng159\build''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', все должно закончиться успешно, нажимаем ''Generate''. Далее идем в папку ''C:\project\gdal-1.9.0\build'' и открываем файл ''gdallib.sln'' с помощью VS. Ставим конфигурацию ''Release'' и компилируем. Если все прошло без ошибок, '''вы собрали GDAL!'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь необходимо проверить работоспособность собранной библиотеки.&lt;br /&gt;
&lt;br /&gt;
== Тестовый пример == &lt;br /&gt;
&lt;br /&gt;
Сделаем тестовый пример. Исходный код берем отсюда: http://www.gdal.org/gdal_tutorial_ru.html.&amp;lt;br /&amp;gt;&lt;br /&gt;
Создадим консольный проект C++ CLR. Пропишем следующие пути:&amp;lt;br /&amp;gt;&lt;br /&gt;
выбираем в меню Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;Компоновщик-&amp;gt;Ввод. На этой странице в дополнительных зависимостях прописываем ''C:\project\gdal-1.9.0\build\Release\gdal19.lib''&amp;lt;br /&amp;gt;&lt;br /&gt;
теперь в Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;C/C++ в Дополнительные зависимости включаемых файлов прописать&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\build\port\''&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\alg\''&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\''&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\''gcore&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\''port&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же необходимо в папку, где содержатся откомпилированные файлы проекта (обычно папка с именем конфигурации ''Release'' или ''Debug'') положить сформированные dll, собрынные нами ранее:&amp;lt;br /&amp;gt;&lt;br /&gt;
*gdal19.dll&lt;br /&gt;
*geos.dll&lt;br /&gt;
*geos_c.dll&lt;br /&gt;
*libcurl.dll&lt;br /&gt;
*libexpat.dll&lt;br /&gt;
*libjpeg.dll&lt;br /&gt;
*libpng15.dll&lt;br /&gt;
*libtiff.dll&lt;br /&gt;
*proj4.dll&lt;br /&gt;
*zlib1.dll&lt;br /&gt;
&lt;br /&gt;
Так же в эту папку положите какой-нибудь рисунок и задайте путь до него в тексте программы. Например, ''1.JPG''.&lt;br /&gt;
&lt;br /&gt;
Так выглядит тестовый код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
#include &amp;quot;gdal_priv.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
int main(array&amp;lt;System::String ^&amp;gt; ^args)&lt;br /&gt;
{&lt;br /&gt;
    GDALDataset  *poDataset;&lt;br /&gt;
    GDALAllRegister();&lt;br /&gt;
    poDataset = (GDALDataset *) GDALOpen( &amp;quot;1.JPG&amp;quot;, GA_ReadOnly ); // здесь надо указать путь до изображения&lt;br /&gt;
	 if( poDataset == NULL )&lt;br /&gt;
    {&lt;br /&gt;
       return 0;&lt;br /&gt;
    }&lt;br /&gt;
	double        adfGeoTransform[6];&lt;br /&gt;
    printf( &amp;quot;Драйвер: %s/%s\n&amp;quot;,&lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetDescription(), &lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetMetadataItem( GDAL_DMD_LONGNAME ) );&lt;br /&gt;
    printf( &amp;quot;Размер %dx%dx%d\n&amp;quot;, &lt;br /&gt;
            poDataset-&amp;gt;GetRasterXSize(), poDataset-&amp;gt;GetRasterYSize(),&lt;br /&gt;
            poDataset-&amp;gt;GetRasterCount() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetProjectionRef()  != NULL )&lt;br /&gt;
        printf( &amp;quot;Проекция \&amp;quot;%s\&amp;quot;\n&amp;quot;, poDataset-&amp;gt;GetProjectionRef() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetGeoTransform( adfGeoTransform ) == CE_None )&lt;br /&gt;
    {&lt;br /&gt;
        printf( &amp;quot;Начало координат (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[0], adfGeoTransform[3] );&lt;br /&gt;
        printf( &amp;quot;Размер пиксела (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[1], adfGeoTransform[5] );&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Заключение ==&lt;br /&gt;
В статье мы научились собирать библиотеку '''GDAL''' и библиотеки от которых она зависит, а также сделали тестовый пример для работы с ней. &lt;br /&gt;
Комментарии, исправления, отзывы и пожелания '''приветствуются'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Огромное СПАСИБО за помощь со сборкой и терпение пользователю ГИС-ЛАБ Bishop.''' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Автор: Евгений Боровенский (LEXX413).&lt;br /&gt;
&lt;br /&gt;
Соавтор: Дмитрий Барышников (Bishop).&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4651</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4651"/>
		<updated>2012-04-05T10:26:41Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Библиотека expat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Введение == &lt;br /&gt;
В данной статье пойдет речь о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. Библиотека [http://gdal.org/ GDAL] - это библиотека для работы с растровыми географическими форматами файлов данных. GDAL распространяется [http://www.osgeo.org/ Open Source Geospatial Foundation] на условиях лицензии [http://trac.osgeo.org/gdal/wiki/FAQGeneral#WhatlicensedoesGDALOGRuse X/MIT] , то есть является проектом [http://www.opensource.org/ с открытым исходным кодом]. Как библиотека GDAL предоставляет вызывающему приложению [http://gdal.org/gdal_datamodel_ru.html единую обобщённую модель данных] для всех поддерживаемых форматов файлов данных. Помимо этого в состав GDAL входит [http://gdal.org/gdal_utilities.html набор вспомогательных программ], вызываемых из командной строки, для преобразования и обработки данных.&amp;lt;ref name=&amp;quot;gdal&amp;quot;&amp;gt;[http://gdal.org/index_ru.html GDAL - Geospatial Data Abstraction Library]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для сборки GDAL и библиотек от которых она зависит будет использоваться система сборки [http://www.cmake.org/ CMake]. CMake (от англ. cross platform make) — это кроссплатформенная система автоматизации сборки программного обеспечения из исходного кода. CMake не занимается непосредственно сборкой, a лишь генерирует файлы управления сборкой из файлов CMakeLists.txt&amp;lt;ref name=&amp;quot;cmake&amp;quot;&amp;gt;[http://ru.wikipedia.org/wiki/CMake CMake], Материал из Википедии — свободной энциклопедии&amp;lt;/ref&amp;gt;:&lt;br /&gt;
*Makefile в системах Unix для сборки с помощью make;&lt;br /&gt;
*файлы projects/workspaces в Windows для сборки с помощью Visual C++;&lt;br /&gt;
*проекты XCode в Mac OS X&lt;br /&gt;
&lt;br /&gt;
В настоящий момент не существует официального скрипта для сборки GDAL при помощи Cmake. Поэтому, данный метод следует рассматривать в качестве примера сборки и одного из вариантов (унифицированный способ сборки посредством CMake). &lt;br /&gt;
Кроме того, сборка представляет собой минимальный набор поддерживаемых растровых и векторных драйверов.&lt;br /&gt;
&lt;br /&gt;
== Структура библиотеки GDAL ==&lt;br /&gt;
Библиотека GDAL состоит из 3-х основных частей:&lt;br /&gt;
#CPL - базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
#OGR - работа с векторными форматами. Список форматов размещен здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
#GDAL - работа с растровыми форматами. Список форматов размещен здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff, jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следует понимать что такое драйвер. Драйвер - это отдельный плагин обеспечивающий поддержку формата из списков, приведенных выше. В этих списках можно посмотреть, что от чего зависит. Иногда драйвер не зависит ни от какой из сторонних библиотек и компилировать его просто. Иногда нужна еще отдельная библиотека или целый набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''О сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов). Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагается делать это все с использованием системы сборки CMake. Для большинства библиотек уже имеются скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно зайти в свойства и посмотреть, что и как.&lt;br /&gt;
&lt;br /&gt;
Поэтому скачиваем последнюю версию системы сборки CMake по адресу http://www.cmake.org/cmake/resources/software.html (на текущий момент последняя версия http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe) и ставим ее. &lt;br /&gt;
&lt;br /&gt;
'''Примечание.'''&lt;br /&gt;
CMake, как, впрочем, и другие системы сборки, поддерживает два способа сборки: при первом ('''In source''', in tree build) целевая программа собирается в тех же директориях, в которых расположены исходные тексты. В результате в директориях с исходниками остаются промежуточные файлы сборки. Второй вариант - сборка '''out of source''', при которой сборка выполняется в отдельной директории, в которой сохраняются все промежуточные файлы, а директория с иходными текстами остается в том же состоянии, что и до выполнения сборки.&amp;lt;ref name=&amp;quot;cmake-gui&amp;quot;&amp;gt;[http://symmetrica.net/cmake/CMake-2.htm CMake], Сборка In-source и Out-of-source&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В предложенной методике будет применяться сборка Out-of-source.&lt;br /&gt;
&lt;br /&gt;
== Сборка зависимых библиотек ==&lt;br /&gt;
=== Библиотека expat ===&lt;br /&gt;
Первой библиотекой будем компилировать '''expat'''.&lt;br /&gt;
&lt;br /&gt;
Скачиваем исходные тексты библиотеки отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ (актуальная версия на момент написания находится в файле под названием expat-2.0.1.tar.gz) и распаковываем в папку, где будут храниться все проекты для сборки библиотек. Например, по следующему пути&lt;br /&gt;
 C:\project\expat-2.0.1\&lt;br /&gt;
Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать исходные тексты и сопровождающие файлы (см. рис. 1), а не вложенная папка expat-2.0.1 (для данного примера).&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 1.JPG|мини|центр|750пкс|Рис. 1. Структура директории]]&lt;br /&gt;
&lt;br /&gt;
Далее скачиваем файл CMakeLists.txt ([[Файл:CMakeLists.zip]]) и помещаем в разархивированную папку expat-2.0.1.&lt;br /&gt;
&lt;br /&gt;
Запускаем CMake GUI и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это путь куда был распакован expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это папка, куда генерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку ''Configure'' и выбираем версию Visual Studio (в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 2.JPG|мини|центр|750пкс|Рис. 2. Окно интерфейса пользователя Cmake]]&lt;br /&gt;
&lt;br /&gt;
В папке ''build'' должен появиться фаил ''libexpat.sln''. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки ''Release'' вместо ''Debug'' и компилируем проект (нажимаем F7). &lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 3.JPG|мини|центр|750пкс|Рис. 3. Выбор типа сборки]]&lt;br /&gt;
&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки ''lib/Release'') должны появиться следующие файлы&lt;br /&gt;
*libexpat.dll&lt;br /&gt;
*libexpat.exp&lt;br /&gt;
*libexpat.lib&lt;br /&gt;
&lt;br /&gt;
Это был скомпилирован так называемая '''shared dll'''. Существует еще '''static dll''' - тогда на выходе получается только ''libexpat.lib''. &lt;br /&gt;
&lt;br /&gt;
Потом ''libexpat.dll'' надо будет скопировать в папку с вашей программой. Туда же надо будет скопирвоать все зависимые библиотеки.&lt;br /&gt;
&lt;br /&gt;
=== Библиотека zlib ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''zlib'''.&lt;br /&gt;
&lt;br /&gt;
Скачиваем ее отсюда http://zlib.net/ (актуальная на момент написания статьи версия http://zlib.net/zlib126.zip). Файл сценария CMake - CmakeLists.txt в архив уже включен. Распакуем по следующему пути: ''C:\project\zlib-1.2.6''.&lt;br /&gt;
&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
 CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сценарий CMake генерирует новый файл. После удаления zconf.h опять нажимаем ''Configure''. Процесс должен закончиться без ошибок. Далее запускаем ''Generate'' и переходим в папку ''build''. Открываем файл ''zlib.sln'' с помощью Visual Studio (далее VS), ставим тип сборки ''Release''. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого '''снимаем галочки''' с ''examles'' и ''minizip'' они нам не понадобятся (см. рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к ''zlib.h''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 4.JPG|мини|центр|300пкс|Рис. 4. Диспетчер конфигураций]]&lt;br /&gt;
&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации (эту папку необходимо создать самим).&lt;br /&gt;
&lt;br /&gt;
=== Библиотека geos ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''geos'''.&lt;br /&gt;
&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/geos/ (актуальная версия на момент написания статьи находится по адресу http://download.osgeo.org/geos/geos-3.3.2.tar.bz2). Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем галочку с BUILD_TESTING (см. рис. 5). &lt;br /&gt;
&lt;br /&gt;
'''Примечание''', чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. рис. 5).&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 5.JPG|мини|центр|300пкс|Рис. 5. Настройки GEOS в CMake-GUI]]&lt;br /&gt;
&lt;br /&gt;
Далее нажимаем Generate, открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'', выставляем конфигурацию ''Release'' и компилируем. Если у вас возникла ошибка:&lt;br /&gt;
&lt;br /&gt;
 Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static&lt;br /&gt;
&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
на&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
и скомпилируйте заново.&lt;br /&gt;
&lt;br /&gt;
Далее, если возникла ошибка&lt;br /&gt;
 Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit&lt;br /&gt;
&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
str[i] = std::toupper(str[i]);&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
&lt;br /&gt;
напишите&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
str[i] = toupper(str[i]);&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&lt;br /&gt;
&lt;br /&gt;
=== Библиотека curl ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''curl'''.&lt;br /&gt;
Скачиваем последнюю версию отсюда http://curl.haxx.se/download.html (актуальная версия на момент написания статьи находилась по следующему пути http://curl.haxx.se/download/curl-7.24.0.zip) и распакуем в ''C:\project\curl-7.24.0''. &lt;br /&gt;
&lt;br /&gt;
Запускаем CMake GUI, указываем пути и нажимаем Configure. Далее прописываем в свойствах&lt;br /&gt;
*WSOCK32_LIBRARY - WSOCK32.lib&lt;br /&gt;
*WS2_32_LIBRARY -  WS2_32.lib&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build'' &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\zlib-1.2.6\lib\Release\zlib.lib'' &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте (см. рис. 6). &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл:Рис. 6.JPG|мини|центр|300пкс|Рис. 6. Настройки CURL в CMake-GUI]]&lt;br /&gt;
&lt;br /&gt;
После того как все будет сделано, нажимайте ''Configure'', все должно закончиться без ошибок и потом ''Generate''. Далее открываем файл ''CURL.sln'' в папке ''build''. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем: &amp;lt;br /&amp;gt;&lt;br /&gt;
*WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
*WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Библиотека libjpeg ===&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем ''configurate'', затем ''Generate''. Идем в папку ''Debug'', открываем ''libjpeg.sln'', ставим ''Realese'' и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Библиотека libpng ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''libpng'''.&lt;br /&gt;
Скачиваем последнюю версию отсюда http://www.libpng.org/pub/png/libpng.html (актуальная версия на момент написания статьи находилась по следующему пути http://download.sourceforge.net/libpng/lpng159.zip). Распаковываем и запускаем CMake GUI, проводим конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configure и Generate. Далее открываем libpng.sln, ставим конфигурацию Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Библиотека libtiff ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''libtiff'''.&lt;br /&gt;
Скачиваем последнюю версию отсюда ftp://ftp.remotesensing.org/pub/libtiff (актуальная версия на момент написания статьи находилась по следующему пути ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip), распаковываем в ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и распаковываем как обычно [[Файл:Tiff.zip]]. Запускаем CMake, делаем ''Configure'' и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем ''Configure'' еще раз и ''Generate'', далее открываем ''libtiff.sln'' ставим конфигурацию ''Release'' и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Библиотека proj ===&lt;br /&gt;
&lt;br /&gt;
Следующей библиотекой будет '''proj'''.&lt;br /&gt;
Скачиваем последнюю версию отсюда http://trac.osgeo.org/proj/ (актуальная версия на момент написания статьи находилась по следующему пути http://download.osgeo.org/proj/proj-4.8.0.zip). Распаковываем, и кидаем туда этот файл [[Файл:CMakeListsproj.zip]], запускаем CMake, прописываем пути до proj, жмем ''Configure'' и ''Generate'', открываем ''proj4.sln'', ставим конфигурацию ''Release'' и компилируем.&lt;br /&gt;
&lt;br /&gt;
'''На этом вся подготовка закончена, у нас есть все необходимые библиотеки.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сборка GDAL ==&lt;br /&gt;
&lt;br /&gt;
Приступаем к сборке самого '''GDAL'''.&lt;br /&gt;
&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/gdal/wiki/DownloadSource последнюю версию на момент написания статьи gdal 1.9.0 ( http://download.osgeo.org/gdal/gdal190.zip ). Качаем архив [[Файл:Gdal_trank.zip]] . Распаковываем gdal в папку ''project''. В полученную папку ''C:\project\gdal-1.9.0'' распаковываем файлы из архива ''Gdal_trank.zip'' (папку cmake и файл CMakeLists).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запускаем CMake и как обычно прописываем 2 пути ''C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\build'', нажимаем ''Configure''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Когда выскочит ошибка, прописываем пути до '''zlib''': ''C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build'' и ''C:/project/zlib-1.2.6/lib/Release/zlib.lib'' в директориях соответственно ZLIB_INCLUDE_DIR и ZLIB_LIBRARY. Далее все пути надо будет прописывать примерно аналогично для директории INCLUDE и LIBRARY. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''CURL''' ''C:/project/curl-7.24.0/include'' и ''C:/project/curl-7.24.0/lib/Release/libcurl_imp.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''EXPAT''': ''C:/project/expat-2.0.1/lib/'' и ''C:/project/expat-2.0.1/lib/Release/libexpat.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''GEOS''': ''C:\project\geos-3.3.2\include'' и ''C:/project/geos-3.3.2/lib/Release/geos_c.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''PROJ''': ''C:\project\proj-4.8.0\src'' и ''C:/project/proj-4.8.0/lib/Release/proj4.lib''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку, идем в '''OGR''' и убираем галочку с OGR_PG.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''JPEG''': ''C:\project\jpeg-8d;C:\project\jpeg-8d\build'' и ''C:/project/jpeg-8d/lib/Release/libjpeg.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''TIFF''': ''C:\project\tiff-4.0.1\libtiff;C:\project\tiff-4.0.1\build'' и ''C:\project\tiff-4.0.1\lib\Release\libtiff.lib''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''PNG''', '''тут внимательно'''! Первая строчка - пути до LIBRARY: ''C:/project/lpng159/lib/Release/libpng15.lib'', вторая ''C:\project\lpng159;C:\project\lpng159\build''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', все должно закончиться успешно, нажимаем ''Generate''. Далее идем в папку ''C:\project\gdal-1.9.0\build'' и открываем файл ''gdallib.sln'' с помощью VS. Ставим конфигурацию ''Release'' и компилируем. Если все прошло без ошибок, '''вы собрали GDAL!'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь необходимо проверить работоспособность собранной библиотеки.&lt;br /&gt;
&lt;br /&gt;
== Тестовый пример == &lt;br /&gt;
&lt;br /&gt;
Сделаем тестовый пример. Исходный код берем отсюда: http://www.gdal.org/gdal_tutorial_ru.html.&amp;lt;br /&amp;gt;&lt;br /&gt;
Создадим консольный проект C++ CLR. Пропишем следующие пути:&amp;lt;br /&amp;gt;&lt;br /&gt;
выбираем в меню Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;Компоновщик-&amp;gt;Ввод. На этой странице в дополнительных зависимостях прописываем ''C:\project\gdal-1.9.0\build\Release\gdal19.lib''&amp;lt;br /&amp;gt;&lt;br /&gt;
теперь в Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;C/C++ в Дополнительные зависимости включаемых файлов прописать&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\build\port\''&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\alg\''&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\''&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\''gcore&amp;lt;br /&amp;gt;&lt;br /&gt;
*''C:\project\gdal-1.9.0\''port&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же необходимо в папку, где содержатся откомпилированные файлы проекта (обычно папка с именем конфигурации ''Release'' или ''Debug'') положить сформированные dll, собрынные нами ранее:&amp;lt;br /&amp;gt;&lt;br /&gt;
*gdal19.dll&lt;br /&gt;
*geos.dll&lt;br /&gt;
*geos_c.dll&lt;br /&gt;
*libcurl.dll&lt;br /&gt;
*libexpat.dll&lt;br /&gt;
*libjpeg.dll&lt;br /&gt;
*libpng15.dll&lt;br /&gt;
*libtiff.dll&lt;br /&gt;
*proj4.dll&lt;br /&gt;
*zlib1.dll&lt;br /&gt;
&lt;br /&gt;
Так же в эту папку положите какой-нибудь рисунок и задайте путь до него в тексте программы. Например, ''1.JPG''.&lt;br /&gt;
&lt;br /&gt;
Так выглядит тестовый код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;&lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
#include &amp;quot;gdal_priv.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
int main(array&amp;lt;System::String ^&amp;gt; ^args)&lt;br /&gt;
{&lt;br /&gt;
    GDALDataset  *poDataset;&lt;br /&gt;
    GDALAllRegister();&lt;br /&gt;
    poDataset = (GDALDataset *) GDALOpen( &amp;quot;1.JPG&amp;quot;, GA_ReadOnly ); // здесь надо указать путь до изображения&lt;br /&gt;
	 if( poDataset == NULL )&lt;br /&gt;
    {&lt;br /&gt;
       return 0;&lt;br /&gt;
    }&lt;br /&gt;
	double        adfGeoTransform[6];&lt;br /&gt;
    printf( &amp;quot;Драйвер: %s/%s\n&amp;quot;,&lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetDescription(), &lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetMetadataItem( GDAL_DMD_LONGNAME ) );&lt;br /&gt;
    printf( &amp;quot;Размер %dx%dx%d\n&amp;quot;, &lt;br /&gt;
            poDataset-&amp;gt;GetRasterXSize(), poDataset-&amp;gt;GetRasterYSize(),&lt;br /&gt;
            poDataset-&amp;gt;GetRasterCount() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetProjectionRef()  != NULL )&lt;br /&gt;
        printf( &amp;quot;Проекция \&amp;quot;%s\&amp;quot;\n&amp;quot;, poDataset-&amp;gt;GetProjectionRef() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetGeoTransform( adfGeoTransform ) == CE_None )&lt;br /&gt;
    {&lt;br /&gt;
        printf( &amp;quot;Начало координат (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[0], adfGeoTransform[3] );&lt;br /&gt;
        printf( &amp;quot;Размер пиксела (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[1], adfGeoTransform[5] );&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Заключение ==&lt;br /&gt;
В статье мы научились собирать библиотеку '''GDAL''' и библиотеки от которых она зависит, а также сделали тестовый пример для работы с ней. &lt;br /&gt;
Комментарии, исправления, отзывы и пожелания '''приветствуются'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Огромное СПАСИБО за помощь со сборкой и терпение пользователю ГИС-ЛАБ Bishop.''' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Автор: Евгений Боровенский (LEXX413).&lt;br /&gt;
&lt;br /&gt;
Соавтор: Дмитрий Барышников (Bishop).&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4635</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4635"/>
		<updated>2012-04-04T18:33:37Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Сборка зависимых библиотек&lt;br /&gt;
# Сборка GDAL&lt;br /&gt;
# Тестовый пример&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL ===== &lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
#CPL - базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
#OGR - работа с векторными форматами. Список форматов: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
#GDAL - работа с растровыми форматами. Список форматов: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff, jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 2. Сборка зависимых библиотек ===== &lt;br /&gt;
Первой библиотекой будем компилировать '''expat'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''Рис. 1'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку ''Configure'' и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
'''Рис. 2'''&amp;lt;br /&amp;gt;&lt;br /&gt;
В папке ''build'' должен появиться фаил ''libexpat.sln''. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки ''Release'' вместо ''Debug'' (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
'''Рис. 3'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки ''lib/Release'') должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll''&amp;lt;br /&amp;gt;&lt;br /&gt;
''libexpat.exp''&amp;lt;br /&amp;gt;&lt;br /&gt;
''libexpat.lib''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только ''libexpat.lib''. Потом ''libexpat.dll'' надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте ''Configure'', процесс должен закончиться без ошибок, после запускайте ''Generate''. Далее идем в папку ''build'' и открываем файл ''zlib.sln'' с помощью Visual Studio(далее VS), ставим ''Release''. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с ''examles'' и ''minizip'' они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к ''zlib.h''.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
'''Рис. 4'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
'''Рис. 5'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем ''Release'' и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''    '''тут надо сделать шрифт как код''' &amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''       '''и тут''' &amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
'''Рис. 6'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После того как все будет сделано, нажимайте ''Configurate'', все должно закончиться без ошибок и потом ''Generate''. Далее открываем файл ''CURL.sln'' в папке ''build''. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем &amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать ibjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем ''configurate'', затем ''Generate''. Идем в папку ''Debug'', открываем ''libjpeg.sln'', ставим ''Realese'' и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libpng''' - брать здесь http://www.libpng.org/pub/png/libpng.html последнюю версию http://download.sourceforge.net/libpng/lpng159.zip . Разархивировать, запустить CMake, произвести конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libpng.sln, ставим Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Дальше собираем libtiff''' - брать здесь ftp://ftp.remotesensing.org/pub/libtiff последнюю версию ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip , разархивируем ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и разархивируем как обычно [[Файл:Tiff.zip]]. Запускаем CMakt, делаем ''Configurate'' и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем ''Configurate'' и ''Generate'', далее открываем ''libtiff.sln'' ставим ''Release'' и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Последняя из этих библиотек proj''' - брать здесь http://trac.osgeo.org/proj/ последнюю версию http://download.osgeo.org/proj/proj-4.8.0.zip . Разархивируем, кидаем туда этот фаил [[Файл:CMakeListsproj.zip]], запускаем CMake, прописываем пути до proj, жмем ''Configurate'' и ''Generate'', открываем ''proj4.sln'', ставим ''Release'' и компилируем.&lt;br /&gt;
На этом вся подготовка закончена, у нас есть все необходимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 3. Сборка GDAL =====&lt;br /&gt;
Приступаем к сборке самого '''GDAL'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/gdal/wiki/DownloadSource последнюю версию gdal 1.9.0 ( http://download.osgeo.org/gdal/gdal190.zip ). Качаем архив [[Файл:Gdal_trank.zip]] . Разархивируем gdal в папку ''project'', в разархивированную папку gdal разархивируем файлы из архива ''Gdal_trank.zip'' : папку cmake и файл CMakeLists.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запускаем CMake и как обычно прописываем 2 пути, ''C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\'' и ''C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\build'', нажимаем ''Configure''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Когда выскочит ошибка, прописываем пути до '''zlib''': ''C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build'' и ''C:/project/zlib-1.2.6/lib/Release/zlib.lib'' в директориях соответственно ZLIB_INCLUDE_DIR и ZLIB_LIBRARY. Далее все пути надо будет прописывать примерно аналогично для директории INCLUDE и LIBRARY. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''CURL''' ''C:/project/curl-7.24.0/include'' и ''C:/project/curl-7.24.0/lib/Release/libcurl_imp.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''дальше наоборот надо сделать, чтобы было простым текстом, а не кодом'''&lt;br /&gt;
 Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''EXPAT''': ''C:/project/expat-2.0.1/lib/'' и ''C:/project/expat-2.0.1/lib/Release/libexpat.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
 Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''GEOS''': ''C:\project\geos-3.3.2\include'' и ''C:/project/geos-3.3.2/lib/Release/geos_c.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
 Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''PROJ''': ''C:\project\proj-4.8.0\src'' и ''C:/project/proj-4.8.0/lib/Release/proj4.lib''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку, идем в '''OGR''' и убираем галочку с OGR_PG.&amp;lt;br /&amp;gt;&lt;br /&gt;
 Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''JPEG''': ''C:\project\jpeg-8d;C:\project\jpeg-8d\build'' и ''C:/project/jpeg-8d/lib/Release/libjpeg.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
 Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''TIFF''': ''C:\project\tiff-4.0.1\libtiff;C:\project\tiff-4.0.1\build'' и ''C:\project\tiff-4.0.1\lib\Release\libtiff.lib''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''PNG''', '''''тут внимательно'''''! Первая строчка - пути до LIBRARY: ''C:/project/lpng159/lib/Release/libpng15.lib'', вторая ''C:\project\lpng159;C:\project\lpng159\build''.&amp;lt;br /&amp;gt;&lt;br /&gt;
 Нажимаем ''Configure'', все должно закончиться успешно, нажимаем ''Generate''. Далее идем в папку ''C:\project\gdal-1.9.0\build'' и открываем файл ''gdallib.sln'' с помощью visual studio. Ставим ''Release''  и компилируем. Если все прошло без ошибок, '''вы собрали GDAL! Поздравляю!'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 4. Тестовый пример =====  &lt;br /&gt;
Теперь можно попробовать сделать тестовый пример для проверки работоспособности c этого сайта http://www.gdal.org/gdal_tutorial_ru.html .&amp;lt;br /&amp;gt;&lt;br /&gt;
 Создадим консольный проект C++ CLR. Пропишем следующие пути:&amp;lt;br /&amp;gt;&lt;br /&gt;
выбираем в меню Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;Компоновщик-&amp;gt;Ввод На этой странице в дополнительных зависимостях прописать ''C:\project\gdal-1.9.0\build\Release\gdal19.lib''&amp;lt;br /&amp;gt;&lt;br /&gt;
теперь в Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;C/C++ в Дополнительные зависимости включаемых файлов прописать&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\gdal-1.9.0\build\port\''&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\gdal-1.9.0\alg\''&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\gdal-1.9.0\''&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\gdal-1.9.0\''gcore&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\gdal-1.9.0\''port&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же необходимо в папку, где содержатся файлы проекта положить сформированные dll, собрынные нами ранее вместе с файлами .lib:&amp;lt;br /&amp;gt;&lt;br /&gt;
gdal19.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos_c.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libcurl.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libjpeg.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libpng15.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libtiff.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
proj4.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
zlib1.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же в эту папку положите какой-нибудь рисунок и напишите его имя вместо моего, у меня это 1.JPG.&amp;lt;br /&amp;gt;&lt;br /&gt;
Так выглядит мой код:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''тут надо как-то сделать, чтобы весь текст был кодом''' &amp;lt;br /&amp;gt;&lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
#include &amp;quot;gdal_priv.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
int main(array&amp;lt;System::String ^&amp;gt; ^args)&lt;br /&gt;
{&lt;br /&gt;
    GDALDataset  *poDataset;&lt;br /&gt;
    GDALAllRegister();&lt;br /&gt;
    poDataset = (GDALDataset *) GDALOpen( &amp;quot;1.JPG&amp;quot;, GA_ReadOnly ); // здесь надо заменить имя рисунка&lt;br /&gt;
	 if( poDataset == NULL )&lt;br /&gt;
    {&lt;br /&gt;
       return 0;&lt;br /&gt;
    }&lt;br /&gt;
	double        adfGeoTransform[6];&lt;br /&gt;
    printf( &amp;quot;Драйвер: %s/%s\n&amp;quot;,&lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetDescription(), &lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetMetadataItem( GDAL_DMD_LONGNAME ) );&lt;br /&gt;
    printf( &amp;quot;Размер %dx%dx%d\n&amp;quot;, &lt;br /&gt;
            poDataset-&amp;gt;GetRasterXSize(), poDataset-&amp;gt;GetRasterYSize(),&lt;br /&gt;
            poDataset-&amp;gt;GetRasterCount() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetProjectionRef()  != NULL )&lt;br /&gt;
        printf( &amp;quot;Проекция \&amp;quot;%s\&amp;quot;\n&amp;quot;, poDataset-&amp;gt;GetProjectionRef() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetGeoTransform( adfGeoTransform ) == CE_None )&lt;br /&gt;
    {&lt;br /&gt;
        printf( &amp;quot;Начало координат (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[0], adfGeoTransform[3] );&lt;br /&gt;
        printf( &amp;quot;Размер пиксела (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[1], adfGeoTransform[5] );&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Ну вот и все. На этом данная статья заканчивается. В ней Вы научились собирать '''GDAL''' и сделали тестовый пример для работы с ним. Успехов. Комментарии и отзывы приветствуются.&lt;br /&gt;
&lt;br /&gt;
'''Огромное СПАСИБО за помощь со сборкой и терпение пользователю Bishop.''' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Автор: Евгений(LEXX413), Дмитрий(Bishop)&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4634</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4634"/>
		<updated>2012-04-04T18:32:42Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Сборка зависимых библиотек&lt;br /&gt;
# Сборка GDAL&lt;br /&gt;
# Тестовый пример&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL ===== &lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
#CPL - базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
#OGR - работа с векторными форматами. Список форматов: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
#GDAL - работа с растровыми форматами. Список форматов: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff, jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 2. Сборка зависимых библиотек ===== &lt;br /&gt;
Первой библиотекой будем компилировать '''expat'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''Рис. 1'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку ''Configure'' и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
'''Рис. 2'''&amp;lt;br /&amp;gt;&lt;br /&gt;
В папке ''build'' должен появиться фаил ''libexpat.sln''. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки ''Release'' вместо ''Debug'' (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
'''Рис. 3'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки ''lib/Release'') должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll''&amp;lt;br /&amp;gt;&lt;br /&gt;
''libexpat.exp''&amp;lt;br /&amp;gt;&lt;br /&gt;
''libexpat.lib''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только ''libexpat.lib''. Потом ''libexpat.dll'' надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте ''Configure'', процесс должен закончиться без ошибок, после запускайте ''Generate''. Далее идем в папку ''build'' и открываем файл ''zlib.sln'' с помощью Visual Studio(далее VS), ставим ''Release''. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с ''examles'' и ''minizip'' они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к ''zlib.h''.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
'''Рис. 4'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
'''Рис. 5'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем ''Release'' и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''    '''тут надо сделать шрифт как код''' &amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''       '''и тут''' &amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
'''Рис. 6'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После того как все будет сделано, нажимайте ''Configurate'', все должно закончиться без ошибок и потом ''Generate''. Далее открываем файл ''CURL.sln'' в папке ''build''. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем &amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать ibjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем ''configurate'', затем ''Generate''. Идем в папку ''Debug'', открываем ''libjpeg.sln'', ставим ''Realese'' и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libpng''' - брать здесь http://www.libpng.org/pub/png/libpng.html последнюю версию http://download.sourceforge.net/libpng/lpng159.zip . Разархивировать, запустить CMake, произвести конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libpng.sln, ставим Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Дальше собираем libtiff''' - брать здесь ftp://ftp.remotesensing.org/pub/libtiff последнюю версию ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip , разархивируем ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и разархивируем как обычно [[Файл:Tiff.zip]]. Запускаем CMakt, делаем ''Configurate'' и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем ''Configurate'' и ''Generate'', далее открываем ''libtiff.sln'' ставим ''Release'' и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Последняя из этих библиотек proj''' - брать здесь http://trac.osgeo.org/proj/ последнюю версию http://download.osgeo.org/proj/proj-4.8.0.zip . Разархивируем, кидаем туда этот фаил [[Файл:CMakeListsproj.zip]], запускаем CMake, прописываем пути до proj, жмем ''Configurate'' и ''Generate'', открываем ''proj4.sln'', ставим ''Release'' и компилируем.&lt;br /&gt;
На этом вся подготовка закончена, у нас есть все необходимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 3. Сборка GDAL =====&lt;br /&gt;
Приступаем к сборке самого '''GDAL'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/gdal/wiki/DownloadSource последнюю версию gdal 1.9.0 ( http://download.osgeo.org/gdal/gdal190.zip ). Качаем архив [[Файл:Gdal_trank.zip]] . Разархивируем gdal в папку ''project'', в разархивированную папку gdal разархивируем файлы из архива ''Gdal_trank.zip'' : папку cmake и файл CMakeLists.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запускаем CMake и как обычно прописываем 2 пути, ''C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\'' и ''C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\build'', нажимаем ''Configure''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Когда выскочит ошибка, прописываем пути до '''zlib''': ''C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build'' и ''C:/project/zlib-1.2.6/lib/Release/zlib.lib'' в директориях соответственно ZLIB_INCLUDE_DIR и ZLIB_LIBRARY. Далее все пути надо будет прописывать примерно аналогично для директории INCLUDE и LIBRARY. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''CURL''' ''C:/project/curl-7.24.0/include'' и ''C:/project/curl-7.24.0/lib/Release/libcurl_imp.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''дальше наоборот надо сделать, чтобы было простым текстом, а не кодом'''&lt;br /&gt;
 Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''EXPAT''': ''C:/project/expat-2.0.1/lib/'' и ''C:/project/expat-2.0.1/lib/Release/libexpat.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
 Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''GEOS''': ''C:\project\geos-3.3.2\include'' и ''C:/project/geos-3.3.2/lib/Release/geos_c.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
 Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''PROJ''': ''C:\project\proj-4.8.0\src'' и ''C:/project/proj-4.8.0/lib/Release/proj4.lib''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку, идем в '''OGR''' и убираем галочку с OGR_PG.&amp;lt;br /&amp;gt;&lt;br /&gt;
 Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''JPEG''': ''C:\project\jpeg-8d;C:\project\jpeg-8d\build'' и ''C:/project/jpeg-8d/lib/Release/libjpeg.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
 Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''TIFF''': ''C:\project\tiff-4.0.1\libtiff;C:\project\tiff-4.0.1\build'' и ''C:\project\tiff-4.0.1\lib\Release\libtiff.lib''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''PNG''', '''''тут внимательно'''''! Первая строчка - пути до LIBRARY: ''C:/project/lpng159/lib/Release/libpng15.lib'', вторая ''C:\project\lpng159;C:\project\lpng159\build''.&amp;lt;br /&amp;gt;&lt;br /&gt;
 Нажимаем ''Configure'', все должно закончиться успешно, нажимаем ''Generate''. Далее идем в папку ''C:\project\gdal-1.9.0\build'' и открываем файл ''gdallib.sln'' с помощью visual studio. Ставим ''Release''  и компилируем. Если все прошло без ошибок, '''вы собрали GDAL! Поздравляю!'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 4. Тестовый пример =====  &lt;br /&gt;
Теперь можно попробовать сделать тестовый пример для проверки работоспособности c этого сайта http://www.gdal.org/gdal_tutorial_ru.html .&amp;lt;br /&amp;gt;&lt;br /&gt;
 Создадим консольный проект C++ CLR. Пропишем следующие пути:&amp;lt;br /&amp;gt;&lt;br /&gt;
выбираем в меню Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;Компоновщик-&amp;gt;Ввод На этой странице в дополнительных зависимостях прописать ''C:\project\gdal-1.9.0\build\Release\gdal19.lib''&amp;lt;br /&amp;gt;&lt;br /&gt;
теперь в Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;C/C++ в Дополнительные зависимости включаемых файлов прописать&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\gdal-1.9.0\build\port\''&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\gdal-1.9.0\alg\''&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\gdal-1.9.0\''&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\gdal-1.9.0\''gcore&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\gdal-1.9.0\''port&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же необходимо в папку, где содержатся файлы проекта положить сформированные dll, собрынные нами ранее вместе с файлами .lib:&amp;lt;br /&amp;gt;&lt;br /&gt;
gdal19.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos_c.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libcurl.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libjpeg.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libpng15.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libtiff.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
proj4.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
zlib1.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же в эту папку положите какой-нибудь рисунок и напишите его имя вместо моего, у меня это 1.JPG.&amp;lt;br /&amp;gt;&lt;br /&gt;
Так выглядит мой код:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''тут надо как-то сделать, чтобы весь текст был кодом''' &amp;lt;br /&amp;gt;&lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
#include &amp;quot;gdal_priv.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
int main(array&amp;lt;System::String ^&amp;gt; ^args)&lt;br /&gt;
{&lt;br /&gt;
    GDALDataset  *poDataset;&lt;br /&gt;
    GDALAllRegister();&lt;br /&gt;
    poDataset = (GDALDataset *) GDALOpen( &amp;quot;1.JPG&amp;quot;, GA_ReadOnly ); // здесь надо заменить имя рисунка&lt;br /&gt;
	 if( poDataset == NULL )&lt;br /&gt;
    {&lt;br /&gt;
       return 0;&lt;br /&gt;
    }&lt;br /&gt;
	double        adfGeoTransform[6];&lt;br /&gt;
    printf( &amp;quot;Драйвер: %s/%s\n&amp;quot;,&lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetDescription(), &lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetMetadataItem( GDAL_DMD_LONGNAME ) );&lt;br /&gt;
    printf( &amp;quot;Размер %dx%dx%d\n&amp;quot;, &lt;br /&gt;
            poDataset-&amp;gt;GetRasterXSize(), poDataset-&amp;gt;GetRasterYSize(),&lt;br /&gt;
            poDataset-&amp;gt;GetRasterCount() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetProjectionRef()  != NULL )&lt;br /&gt;
        printf( &amp;quot;Проекция \&amp;quot;%s\&amp;quot;\n&amp;quot;, poDataset-&amp;gt;GetProjectionRef() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetGeoTransform( adfGeoTransform ) == CE_None )&lt;br /&gt;
    {&lt;br /&gt;
        printf( &amp;quot;Начало координат (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[0], adfGeoTransform[3] );&lt;br /&gt;
        printf( &amp;quot;Размер пиксела (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[1], adfGeoTransform[5] );&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Ну вот и все. На этом данная статья заканчивается. В ней Вы научились собирать '''GDAL''' и сделали тестовый пример для работы с ним. Успехов. Комментарии и отзывы приветствуются.&lt;br /&gt;
&lt;br /&gt;
'''Огромное СПАСИБО за помощь со сборкой и терпение пользователю Bishop.''' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Автор: Боровенский Евгений(LEXX413), Дмитрий(Bishop)&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4633</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4633"/>
		<updated>2012-04-04T18:30:57Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Сборка зависимых библиотек&lt;br /&gt;
# Сборка GDAL&lt;br /&gt;
# Тестовый пример&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL ===== &amp;lt;br /&amp;gt;&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
#CPL - базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
#OGR - работа с векторными форматами. Список форматов: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
#GDAL - работа с растровыми форматами. Список форматов: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff, jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 2. Сборка зависимых библиотек ===== &amp;lt;br /&amp;gt;&lt;br /&gt;
Первой библиотекой будем компилировать '''expat'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''Рис. 1'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку ''Configure'' и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
'''Рис. 2'''&amp;lt;br /&amp;gt;&lt;br /&gt;
В папке ''build'' должен появиться фаил ''libexpat.sln''. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки ''Release'' вместо ''Debug'' (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
'''Рис. 3'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки ''lib/Release'') должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll''&amp;lt;br /&amp;gt;&lt;br /&gt;
''libexpat.exp''&amp;lt;br /&amp;gt;&lt;br /&gt;
''libexpat.lib''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только ''libexpat.lib''. Потом ''libexpat.dll'' надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте ''Configure'', процесс должен закончиться без ошибок, после запускайте ''Generate''. Далее идем в папку ''build'' и открываем файл ''zlib.sln'' с помощью Visual Studio(далее VS), ставим ''Release''. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с ''examles'' и ''minizip'' они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к ''zlib.h''.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
'''Рис. 4'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
'''Рис. 5'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем ''Release'' и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''    '''тут надо сделать шрифт как код''' &amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''       '''и тут''' &amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
'''Рис. 6'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После того как все будет сделано, нажимайте ''Configurate'', все должно закончиться без ошибок и потом ''Generate''. Далее открываем файл ''CURL.sln'' в папке ''build''. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем &amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать ibjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем ''configurate'', затем ''Generate''. Идем в папку ''Debug'', открываем ''libjpeg.sln'', ставим ''Realese'' и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libpng''' - брать здесь http://www.libpng.org/pub/png/libpng.html последнюю версию http://download.sourceforge.net/libpng/lpng159.zip . Разархивировать, запустить CMake, произвести конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libpng.sln, ставим Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Дальше собираем libtiff''' - брать здесь ftp://ftp.remotesensing.org/pub/libtiff последнюю версию ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip , разархивируем ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и разархивируем как обычно [[Файл:Tiff.zip]]. Запускаем CMakt, делаем ''Configurate'' и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем ''Configurate'' и ''Generate'', далее открываем ''libtiff.sln'' ставим ''Release'' и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Последняя из этих библиотек proj''' - брать здесь http://trac.osgeo.org/proj/ последнюю версию http://download.osgeo.org/proj/proj-4.8.0.zip . Разархивируем, кидаем туда этот фаил [[Файл:CMakeListsproj.zip]], запускаем CMake, прописываем пути до proj, жмем ''Configurate'' и ''Generate'', открываем ''proj4.sln'', ставим ''Release'' и компилируем.&lt;br /&gt;
На этом вся подготовка закончена, у нас есть все необходимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 3. Сборка GDAL ===== &amp;lt;br /&amp;gt;&lt;br /&gt;
Приступаем к сборке самого '''GDAL'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/gdal/wiki/DownloadSource последнюю версию gdal 1.9.0 ( http://download.osgeo.org/gdal/gdal190.zip ). Качаем архив [[Файл:Gdal_trank.zip]] . Разархивируем gdal в папку ''project'', в разархивированную папку gdal разархивируем файлы из архива ''Gdal_trank.zip'' : папку cmake и файл CMakeLists.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запускаем CMake и как обычно прописываем 2 пути, ''C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\'' и ''C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\build'', нажимаем ''Configure''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Когда выскочит ошибка, прописываем пути до '''zlib''': ''C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build'' и ''C:/project/zlib-1.2.6/lib/Release/zlib.lib'' в директориях соответственно ZLIB_INCLUDE_DIR и ZLIB_LIBRARY. Далее все пути надо будет прописывать примерно аналогично для директории INCLUDE и LIBRARY. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''CURL''' ''C:/project/curl-7.24.0/include'' и ''C:/project/curl-7.24.0/lib/Release/libcurl_imp.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
 Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''EXPAT''': ''C:/project/expat-2.0.1/lib/'' и ''C:/project/expat-2.0.1/lib/Release/libexpat.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
 Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''GEOS''': ''C:\project\geos-3.3.2\include'' и ''C:/project/geos-3.3.2/lib/Release/geos_c.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
 Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''PROJ''': ''C:\project\proj-4.8.0\src'' и ''C:/project/proj-4.8.0/lib/Release/proj4.lib''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку, идем в '''OGR''' и убираем галочку с OGR_PG.&amp;lt;br /&amp;gt;&lt;br /&gt;
 Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''JPEG''': ''C:\project\jpeg-8d;C:\project\jpeg-8d\build'' и ''C:/project/jpeg-8d/lib/Release/libjpeg.lib''.&amp;lt;br /&amp;gt;&lt;br /&gt;
 Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''TIFF''': ''C:\project\tiff-4.0.1\libtiff;C:\project\tiff-4.0.1\build'' и ''C:\project\tiff-4.0.1\lib\Release\libtiff.lib''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем ''Configure'', получаем ошибку и прописываем пути для '''PNG''', '''''тут внимательно'''''! Первая строчка - пути до LIBRARY: ''C:/project/lpng159/lib/Release/libpng15.lib'', вторая ''C:\project\lpng159;C:\project\lpng159\build''.&amp;lt;br /&amp;gt;&lt;br /&gt;
 Нажимаем ''Configure'', все должно закончиться успешно, нажимаем ''Generate''. Далее идем в папку ''C:\project\gdal-1.9.0\build'' и открываем файл ''gdallib.sln'' с помощью visual studio. Ставим ''Release''  и компилируем. Если все прошло без ошибок, '''вы собрали GDAL! Поздравляю!'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 4. Тестовый пример =====  &amp;lt;br /&amp;gt;&lt;br /&gt;
Теперь можно попробовать сделать тестовый пример для проверки работоспособности c этого сайта http://www.gdal.org/gdal_tutorial_ru.html .&amp;lt;br /&amp;gt;&lt;br /&gt;
 Создадим консольный проект C++ CLR. Пропишем следующие пути:&amp;lt;br /&amp;gt;&lt;br /&gt;
выбираем в меню Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;Компоновщик-&amp;gt;Ввод На этой странице в дополнительных зависимостях прописать ''C:\project\gdal-1.9.0\build\Release\gdal19.lib''&amp;lt;br /&amp;gt;&lt;br /&gt;
теперь в Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;C/C++ в Дополнительные зависимости включаемых файлов прописать&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\gdal-1.9.0\build\port\''&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\gdal-1.9.0\alg\''&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\gdal-1.9.0\''&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\gdal-1.9.0\''gcore&amp;lt;br /&amp;gt;&lt;br /&gt;
''C:\project\gdal-1.9.0\''port&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же необходимо в папку, где содержатся файлы проекта положить сформированные dll, собрынные нами ранее вместе с файлами .lib:&amp;lt;br /&amp;gt;&lt;br /&gt;
gdal19.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos_c.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libcurl.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libjpeg.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libpng15.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libtiff.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
proj4.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
zlib1.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же в эту папку положите какой-нибудь рисунок и напишите его имя вместо моего, у меня это 1.JPG.&amp;lt;br /&amp;gt;&lt;br /&gt;
Так выглядит мой код:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''тут надо как-то сделать, чтобы весь текст был кодом''' &amp;lt;br /&amp;gt;&lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
#include &amp;quot;gdal_priv.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
int main(array&amp;lt;System::String ^&amp;gt; ^args)&lt;br /&gt;
{&lt;br /&gt;
    GDALDataset  *poDataset;&lt;br /&gt;
    GDALAllRegister();&lt;br /&gt;
    poDataset = (GDALDataset *) GDALOpen( &amp;quot;1.JPG&amp;quot;, GA_ReadOnly ); // здесь надо заменить имя рисунка&lt;br /&gt;
	 if( poDataset == NULL )&lt;br /&gt;
    {&lt;br /&gt;
       return 0;&lt;br /&gt;
    }&lt;br /&gt;
	double        adfGeoTransform[6];&lt;br /&gt;
    printf( &amp;quot;Драйвер: %s/%s\n&amp;quot;,&lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetDescription(), &lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetMetadataItem( GDAL_DMD_LONGNAME ) );&lt;br /&gt;
    printf( &amp;quot;Размер %dx%dx%d\n&amp;quot;, &lt;br /&gt;
            poDataset-&amp;gt;GetRasterXSize(), poDataset-&amp;gt;GetRasterYSize(),&lt;br /&gt;
            poDataset-&amp;gt;GetRasterCount() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetProjectionRef()  != NULL )&lt;br /&gt;
        printf( &amp;quot;Проекция \&amp;quot;%s\&amp;quot;\n&amp;quot;, poDataset-&amp;gt;GetProjectionRef() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetGeoTransform( adfGeoTransform ) == CE_None )&lt;br /&gt;
    {&lt;br /&gt;
        printf( &amp;quot;Начало координат (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[0], adfGeoTransform[3] );&lt;br /&gt;
        printf( &amp;quot;Размер пиксела (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[1], adfGeoTransform[5] );&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Ну вот и все. На этом данная статья заканчивается. В ней Вы научились собирать '''GDAL''' и сделали тестовый пример для работы с ним. Успехов. Комментарии и отзывы приветствуются.&lt;br /&gt;
&lt;br /&gt;
'''Огромное СПАСИБО за помощь со сборкой и терпение пользователю Bishop.''' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Автор: Боровенский Евгений(LEXX413), Дмитрий(Bishop)&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4632</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4632"/>
		<updated>2012-04-04T18:18:28Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Сборка зависимых библиотек&lt;br /&gt;
# Сборка GDAL&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
#CPL - базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
#OGR - работа с векторными форматами. Список форматов: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
#GDAL - работа с растровыми форматами. Список форматов: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff, jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 2. Сборка зависимых библиотек =====&amp;lt;br /&amp;gt;&lt;br /&gt;
Первой библиотекой будем компилировать '''expat'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''Рис. 1'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку ''Configure'' и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
'''Рис. 2'''&amp;lt;br /&amp;gt;&lt;br /&gt;
В папке ''build'' должен появиться фаил ''libexpat.sln''. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки ''Release'' вместо ''Debug'' (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
'''Рис. 3'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки ''lib/Release'') должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll''&amp;lt;br /&amp;gt;&lt;br /&gt;
''libexpat.exp''&amp;lt;br /&amp;gt;&lt;br /&gt;
''libexpat.lib''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только ''libexpat.lib''. Потом ''libexpat.dll'' надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте ''Configure'', процесс должен закончиться без ошибок, после запускайте ''Generate''. Далее идем в папку ''build'' и открываем файл ''zlib.sln'' с помощью Visual Studio(далее VS), ставим ''Release''. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с ''examles'' и ''minizip'' они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к ''zlib.h''.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
'''Рис. 4'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
'''Рис. 5'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем ''Release'' и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''&amp;lt;br /&amp;gt;      '''тут надо сделать шрифт как код'''&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''&amp;lt;br /&amp;gt;        '''и тут'''&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
'''Рис. 6'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После того как все будет сделано, нажимайте ''Configurate'', все должно закончиться без ошибок и потом ''Generate''. Далее открываем файл ''CURL.sln'' в папке ''build''. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем &amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать ibjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем ''configurate'', затем ''Generate''. Идем в папку ''Debug'', открываем ''libjpeg.sln'', ставим ''Realese'' и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libpng''' - брать здесь http://www.libpng.org/pub/png/libpng.html последнюю версию http://download.sourceforge.net/libpng/lpng159.zip . Разархивировать, запустить CMake, произвести конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libpng.sln, ставим Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Дальше собираем libtiff''' - брать здесь ftp://ftp.remotesensing.org/pub/libtiff последнюю версию ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip , разархивируем ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и разархивируем как обычно [[Файл:Tiff.zip]]. Запускаем CMakt, делаем ''Configurate'' и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем ''Configurate'' и ''Generate'', далее открываем ''libtiff.sln'' ставим ''Release'' и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Последняя из этих библиотек proj''' - брать здесь http://trac.osgeo.org/proj/ последнюю версию http://download.osgeo.org/proj/proj-4.8.0.zip . Разархивируем, кидаем туда этот фаил [[Файл:CMakeListsproj.zip]], запускаем CMake, прописываем пути до proj, жмем ''Configurate'' и ''Generate'', открываем ''proj4.sln'', ставим ''Release'' и компилируем.&lt;br /&gt;
На этом вся подготовка закончена, у нас есть все необходимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 3. Сборка GDAL =====&lt;br /&gt;
Приступаем к сборке самого '''GDAL'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/gdal/wiki/DownloadSource последнюю версию gdal 1.9.0 ( http://download.osgeo.org/gdal/gdal190.zip ). Качаем архив [[Файл:Gdal_trank.zip]] . Разархивируем gdal в папку project, в разархивированную папку gdal разархивируем файлы из архива Gdal_trank.zip : папку cmake и файл CMakeLists.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMake и как обычно прописываем 2 пути, C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\build, нажимаем &lt;br /&gt;
Configure. Когда выскочит ошибка, прописываем пути до zlib: C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build и C:/project/zlib-1.2.6/lib/Release/zlib.lib в директориях соответственно ZLIB_INCLUDE_DIR и ZLIB_LIBRARY. Далее все пути надо будет прописывать примерно аналогично для директории INCLUDE и LIBRARY. Нажимаем Configure, получаем ошибку и прописываем пути для CURL C:/project/curl-7.24.0/include и C:/project/curl-7.24.0/lib/Release/libcurl_imp.lib. Нажимаем Configure, получаем ошибку и прописываем пути для EXPAT: C:/project/expat-2.0.1/lib/ и C:/project/expat-2.0.1/lib/Release/libexpat.lib. Нажимаем Configure, получаем ошибку и прописываем пути для GEOS: C:\project\geos-3.3.2\include и C:/project/geos-3.3.2/lib/Release/geos_c.lib. Нажимаем Configure, получаем ошибку и прописываем пути для PROJ: C:\project\proj-4.8.0\src и C:/project/proj-4.8.0/lib/Release/proj4.lib. Нажимаем Configure, получаем ошибку, идем в OGR и убираем галочку с OGR_PG. Нажимаем Configure, получаем ошибку и прописываем пути для JPEG: C:\project\jpeg-8d;C:\project\jpeg-8d\build и C:/project/jpeg-8d/lib/Release/libjpeg.lib. Нажимаем Configure, получаем ошибку и прописываем пути для TIFF: C:\project\tiff-4.0.1\libtiff;C:\project\tiff-4.0.1\build и C:\project\tiff-4.0.1\lib\Release\libtiff.lib. Нажимаем Configure, получаем ошибку и прописываем пути для PNG, тут внимательно! Первая строчка - пути до LIBRARY: C:/project/lpng159/lib/Release/libpng15.lib и C:\project\lpng159;C:\project\lpng159\build. Нажимаем Configure, все должно закончиться успешно, нажимаем Generate. Далее идем в папку C:\project\gdal-1.9.0\build и открываем файл gdallib.sln с помощью visual studio. Ставим Release  и компилируем. Если все прошло без ошибок, вы собрали GDAL! Поздравляю!&lt;br /&gt;
Теперь можно попробовать сделать тестовый пример для проверки работоспособности c 'njq nchfybws http://www.gdal.org/gdal_tutorial_ru.html . Создадим консольный проект C++ CLR. Пропишем следующие пути:&amp;lt;br /&amp;gt;&lt;br /&gt;
выбираем в меню Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;Компоновщик-&amp;gt;Ввод На этой странице в дополнительных зависимостях прописать C:\project\gdal-1.9.0\build\Release\gdal19.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
теперь в Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;C/C++ в Дополнительные зависимости включаемых файлов прописать&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\build\port&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\alg&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\gcore&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\port&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же необходимо в папку, где содержатся файлы проекта положить сформированные dll, собрынные нами ранее вместе с файлами .lib:&amp;lt;br /&amp;gt;&lt;br /&gt;
gdal19.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos_c.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libcurl.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libjpeg.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libpng15.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libtiff.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
proj4.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
zlib1.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же в эту папку положите какой-нибудь рисунок и напишите его имя вместо моего, у меня это 1.JPG.&lt;br /&gt;
Так выглядит мой код:&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
#include &amp;quot;gdal_priv.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
int main(array&amp;lt;System::String ^&amp;gt; ^args)&lt;br /&gt;
{&lt;br /&gt;
    GDALDataset  *poDataset;&lt;br /&gt;
    GDALAllRegister();&lt;br /&gt;
    poDataset = (GDALDataset *) GDALOpen( &amp;quot;1.JPG&amp;quot;, GA_ReadOnly ); // здесь надо заменить имя рисунка&lt;br /&gt;
	 if( poDataset == NULL )&lt;br /&gt;
    {&lt;br /&gt;
       return 0;&lt;br /&gt;
    }&lt;br /&gt;
	double        adfGeoTransform[6];&lt;br /&gt;
    printf( &amp;quot;Драйвер: %s/%s\n&amp;quot;,&lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetDescription(), &lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetMetadataItem( GDAL_DMD_LONGNAME ) );&lt;br /&gt;
    printf( &amp;quot;Размер %dx%dx%d\n&amp;quot;, &lt;br /&gt;
            poDataset-&amp;gt;GetRasterXSize(), poDataset-&amp;gt;GetRasterYSize(),&lt;br /&gt;
            poDataset-&amp;gt;GetRasterCount() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetProjectionRef()  != NULL )&lt;br /&gt;
        printf( &amp;quot;Проекция \&amp;quot;%s\&amp;quot;\n&amp;quot;, poDataset-&amp;gt;GetProjectionRef() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetGeoTransform( adfGeoTransform ) == CE_None )&lt;br /&gt;
    {&lt;br /&gt;
        printf( &amp;quot;Начало координат (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[0], adfGeoTransform[3] );&lt;br /&gt;
        printf( &amp;quot;Размер пиксела (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[1], adfGeoTransform[5] );&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Ну вот и все. На этом данная статья заканчивается. В ней Вы научились собирать GDAL и сделали тестовый пример для работы с ним. Успехов. Комментарии и отзывы приветствуются.&lt;br /&gt;
&lt;br /&gt;
Огромное СПАСИБО за помощь со сборкой и терпение пользователю Bishop.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Боровенский Евгений(LEXX413), Дмитрий(Bishop)&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4631</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4631"/>
		<updated>2012-04-04T18:10:53Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Сборка зависимых библиотек&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
#CPL - базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
#OGR - работа с векторными форматами. Список форматов: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
#GDAL - работа с растровыми форматами. Список форматов: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff, jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 2. Сборка зависимых библиотек =====&amp;lt;br /&amp;gt;&lt;br /&gt;
Первой библиотекой будем компилировать '''expat'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''Рис. 1'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку ''Configure'' и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
'''Рис. 2'''&amp;lt;br /&amp;gt;&lt;br /&gt;
В папке ''build'' должен появиться фаил ''libexpat.sln''. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки ''Release'' вместо ''Debug'' (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
'''Рис. 3'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки ''lib/Release'') должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll''&amp;lt;br /&amp;gt;&lt;br /&gt;
''libexpat.exp''&amp;lt;br /&amp;gt;&lt;br /&gt;
''libexpat.lib''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только ''libexpat.lib''. Потом ''libexpat.dll'' надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio(далее VS), ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем Release и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
После того как все будет сделано, нажимайте Configurate, все должно закончиться без ошибок и потом Generate. Далее открываем файл CURL.sln в папке build. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем &amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать ibjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем configurate, затем Generate. Идем в папку Debug, открываем libjpeg.sln, ставим Realese и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libpng''' - брать здесь http://www.libpng.org/pub/png/libpng.html последнюю версию http://download.sourceforge.net/libpng/lpng159.zip . Разархивировать, запустить CMake, произвести конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libpng.sln, ставим Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Дальше собираем libtiff''' - брать здесь ftp://ftp.remotesensing.org/pub/libtiff последнюю версию ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip , разархивируем ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и разархивируем как обычно [[Файл:Tiff.zip]]. Запускаем CMakt, делаем Configurate и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libtiff ставим Release и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Последняя из этих библиотек proj''' - брать здесь http://trac.osgeo.org/proj/ последнюю версию http://download.osgeo.org/proj/proj-4.8.0.zip . Разархивируем, кидаем туда этот фаил [[Файл:CMakeListsproj.zip]], запускаем CMake, прописываем пути до proj, жмем Configurate и Generate, открываем proj4, ставим Release и компилируем.&lt;br /&gt;
&lt;br /&gt;
На этом вся подготовка закончена, у нас есть все необходимые библиотеки.&lt;br /&gt;
Приступаем к сборке самого '''GDAL'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/gdal/wiki/DownloadSource последнюю версию gdal 1.9.0 ( http://download.osgeo.org/gdal/gdal190.zip ). Качаем архив [[Файл:Gdal_trank.zip]] . Разархивируем gdal в папку project, в разархивированную папку gdal разархивируем файлы из архива Gdal_trank.zip : папку cmake и файл CMakeLists.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMake и как обычно прописываем 2 пути, C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\build, нажимаем &lt;br /&gt;
Configure. Когда выскочит ошибка, прописываем пути до zlib: C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build и C:/project/zlib-1.2.6/lib/Release/zlib.lib в директориях соответственно ZLIB_INCLUDE_DIR и ZLIB_LIBRARY. Далее все пути надо будет прописывать примерно аналогично для директории INCLUDE и LIBRARY. Нажимаем Configure, получаем ошибку и прописываем пути для CURL C:/project/curl-7.24.0/include и C:/project/curl-7.24.0/lib/Release/libcurl_imp.lib. Нажимаем Configure, получаем ошибку и прописываем пути для EXPAT: C:/project/expat-2.0.1/lib/ и C:/project/expat-2.0.1/lib/Release/libexpat.lib. Нажимаем Configure, получаем ошибку и прописываем пути для GEOS: C:\project\geos-3.3.2\include и C:/project/geos-3.3.2/lib/Release/geos_c.lib. Нажимаем Configure, получаем ошибку и прописываем пути для PROJ: C:\project\proj-4.8.0\src и C:/project/proj-4.8.0/lib/Release/proj4.lib. Нажимаем Configure, получаем ошибку, идем в OGR и убираем галочку с OGR_PG. Нажимаем Configure, получаем ошибку и прописываем пути для JPEG: C:\project\jpeg-8d;C:\project\jpeg-8d\build и C:/project/jpeg-8d/lib/Release/libjpeg.lib. Нажимаем Configure, получаем ошибку и прописываем пути для TIFF: C:\project\tiff-4.0.1\libtiff;C:\project\tiff-4.0.1\build и C:\project\tiff-4.0.1\lib\Release\libtiff.lib. Нажимаем Configure, получаем ошибку и прописываем пути для PNG, тут внимательно! Первая строчка - пути до LIBRARY: C:/project/lpng159/lib/Release/libpng15.lib и C:\project\lpng159;C:\project\lpng159\build. Нажимаем Configure, все должно закончиться успешно, нажимаем Generate. Далее идем в папку C:\project\gdal-1.9.0\build и открываем файл gdallib.sln с помощью visual studio. Ставим Release  и компилируем. Если все прошло без ошибок, вы собрали GDAL! Поздравляю!&lt;br /&gt;
Теперь можно попробовать сделать тестовый пример для проверки работоспособности c 'njq nchfybws http://www.gdal.org/gdal_tutorial_ru.html . Создадим консольный проект C++ CLR. Пропишем следующие пути:&amp;lt;br /&amp;gt;&lt;br /&gt;
выбираем в меню Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;Компоновщик-&amp;gt;Ввод На этой странице в дополнительных зависимостях прописать C:\project\gdal-1.9.0\build\Release\gdal19.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
теперь в Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;C/C++ в Дополнительные зависимости включаемых файлов прописать&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\build\port&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\alg&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\gcore&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\port&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же необходимо в папку, где содержатся файлы проекта положить сформированные dll, собрынные нами ранее вместе с файлами .lib:&amp;lt;br /&amp;gt;&lt;br /&gt;
gdal19.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos_c.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libcurl.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libjpeg.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libpng15.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libtiff.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
proj4.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
zlib1.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же в эту папку положите какой-нибудь рисунок и напишите его имя вместо моего, у меня это 1.JPG.&lt;br /&gt;
Так выглядит мой код:&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
#include &amp;quot;gdal_priv.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
int main(array&amp;lt;System::String ^&amp;gt; ^args)&lt;br /&gt;
{&lt;br /&gt;
    GDALDataset  *poDataset;&lt;br /&gt;
    GDALAllRegister();&lt;br /&gt;
    poDataset = (GDALDataset *) GDALOpen( &amp;quot;1.JPG&amp;quot;, GA_ReadOnly ); // здесь надо заменить имя рисунка&lt;br /&gt;
	 if( poDataset == NULL )&lt;br /&gt;
    {&lt;br /&gt;
       return 0;&lt;br /&gt;
    }&lt;br /&gt;
	double        adfGeoTransform[6];&lt;br /&gt;
    printf( &amp;quot;Драйвер: %s/%s\n&amp;quot;,&lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetDescription(), &lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetMetadataItem( GDAL_DMD_LONGNAME ) );&lt;br /&gt;
    printf( &amp;quot;Размер %dx%dx%d\n&amp;quot;, &lt;br /&gt;
            poDataset-&amp;gt;GetRasterXSize(), poDataset-&amp;gt;GetRasterYSize(),&lt;br /&gt;
            poDataset-&amp;gt;GetRasterCount() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetProjectionRef()  != NULL )&lt;br /&gt;
        printf( &amp;quot;Проекция \&amp;quot;%s\&amp;quot;\n&amp;quot;, poDataset-&amp;gt;GetProjectionRef() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetGeoTransform( adfGeoTransform ) == CE_None )&lt;br /&gt;
    {&lt;br /&gt;
        printf( &amp;quot;Начало координат (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[0], adfGeoTransform[3] );&lt;br /&gt;
        printf( &amp;quot;Размер пиксела (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[1], adfGeoTransform[5] );&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Ну вот и все. На этом данная статья заканчивается. В ней Вы научились собирать GDAL и сделали тестовый пример для работы с ним. Успехов. Комментарии и отзывы приветствуются.&lt;br /&gt;
&lt;br /&gt;
Огромное СПАСИБО за помощь со сборкой и терпение пользователю Bishop.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Боровенский Евгений(LEXX413), Дмитрий(Bishop)&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4614</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4614"/>
		<updated>2012-04-01T17:28:42Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
#CPL - базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
#OGR - работа с векторными форматами. Список форматов: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
#GDAL - работа с растровыми форматами. Список форматов: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio(далее VS), ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем Release и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
После того как все будет сделано, нажимайте Configurate, все должно закончиться без ошибок и потом Generate. Далее открываем файл CURL.sln в папке build. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем &amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать ibjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем configurate, затем Generate. Идем в папку Debug, открываем libjpeg.sln, ставим Realese и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libpng''' - брать здесь http://www.libpng.org/pub/png/libpng.html последнюю версию http://download.sourceforge.net/libpng/lpng159.zip . Разархивировать, запустить CMake, произвести конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libpng.sln, ставим Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Дальше собираем libtiff''' - брать здесь ftp://ftp.remotesensing.org/pub/libtiff последнюю версию ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip , разархивируем ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и разархивируем как обычно [[Файл:Tiff.zip]]. Запускаем CMakt, делаем Configurate и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libtiff ставим Release и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Последняя из этих библиотек proj''' - брать здесь http://trac.osgeo.org/proj/ последнюю версию http://download.osgeo.org/proj/proj-4.8.0.zip . Разархивируем, кидаем туда этот фаил [[Файл:CMakeListsproj.zip]], запускаем CMake, прописываем пути до proj, жмем Configurate и Generate, открываем proj4, ставим Release и компилируем.&lt;br /&gt;
&lt;br /&gt;
На этом вся подготовка закончена, у нас есть все необходимые библиотеки.&lt;br /&gt;
Приступаем к сборке самого '''GDAL'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/gdal/wiki/DownloadSource последнюю версию gdal 1.9.0 ( http://download.osgeo.org/gdal/gdal190.zip ). Качаем архив [[Файл:Gdal_trank.zip]] . Разархивируем gdal в папку project, в разархивированную папку gdal разархивируем файлы из архива Gdal_trank.zip : папку cmake и файл CMakeLists.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMake и как обычно прописываем 2 пути, C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\build, нажимаем &lt;br /&gt;
Configure. Когда выскочит ошибка, прописываем пути до zlib: C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build и C:/project/zlib-1.2.6/lib/Release/zlib.lib в директориях соответственно ZLIB_INCLUDE_DIR и ZLIB_LIBRARY. Далее все пути надо будет прописывать примерно аналогично для директории INCLUDE и LIBRARY. Нажимаем Configure, получаем ошибку и прописываем пути для CURL C:/project/curl-7.24.0/include и C:/project/curl-7.24.0/lib/Release/libcurl_imp.lib. Нажимаем Configure, получаем ошибку и прописываем пути для EXPAT: C:/project/expat-2.0.1/lib/ и C:/project/expat-2.0.1/lib/Release/libexpat.lib. Нажимаем Configure, получаем ошибку и прописываем пути для GEOS: C:\project\geos-3.3.2\include и C:/project/geos-3.3.2/lib/Release/geos_c.lib. Нажимаем Configure, получаем ошибку и прописываем пути для PROJ: C:\project\proj-4.8.0\src и C:/project/proj-4.8.0/lib/Release/proj4.lib. Нажимаем Configure, получаем ошибку, идем в OGR и убираем галочку с OGR_PG. Нажимаем Configure, получаем ошибку и прописываем пути для JPEG: C:\project\jpeg-8d;C:\project\jpeg-8d\build и C:/project/jpeg-8d/lib/Release/libjpeg.lib. Нажимаем Configure, получаем ошибку и прописываем пути для TIFF: C:\project\tiff-4.0.1\libtiff;C:\project\tiff-4.0.1\build и C:\project\tiff-4.0.1\lib\Release\libtiff.lib. Нажимаем Configure, получаем ошибку и прописываем пути для PNG, тут внимательно! Первая строчка - пути до LIBRARY: C:/project/lpng159/lib/Release/libpng15.lib и C:\project\lpng159;C:\project\lpng159\build. Нажимаем Configure, все должно закончиться успешно, нажимаем Generate. Далее идем в папку C:\project\gdal-1.9.0\build и открываем файл gdallib.sln с помощью visual studio. Ставим Release  и компилируем. Если все прошло без ошибок, вы собрали GDAL! Поздравляю!&lt;br /&gt;
Теперь можно попробовать сделать тестовый пример для проверки работоспособности c 'njq nchfybws http://www.gdal.org/gdal_tutorial_ru.html . Создадим консольный проект C++ CLR. Пропишем следующие пути:&amp;lt;br /&amp;gt;&lt;br /&gt;
выбираем в меню Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;Компоновщик-&amp;gt;Ввод На этой странице в дополнительных зависимостях прописать C:\project\gdal-1.9.0\build\Release\gdal19.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
теперь в Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;C/C++ в Дополнительные зависимости включаемых файлов прописать&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\build\port&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\alg&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\gcore&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\port&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же необходимо в папку, где содержатся файлы проекта положить сформированные dll, собрынные нами ранее вместе с файлами .lib:&amp;lt;br /&amp;gt;&lt;br /&gt;
gdal19.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos_c.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libcurl.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libjpeg.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libpng15.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libtiff.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
proj4.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
zlib1.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же в эту папку положите какой-нибудь рисунок и напишите его имя вместо моего, у меня это 1.JPG.&lt;br /&gt;
Так выглядит мой код:&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
#include &amp;quot;gdal_priv.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
int main(array&amp;lt;System::String ^&amp;gt; ^args)&lt;br /&gt;
{&lt;br /&gt;
    GDALDataset  *poDataset;&lt;br /&gt;
    GDALAllRegister();&lt;br /&gt;
    poDataset = (GDALDataset *) GDALOpen( &amp;quot;1.JPG&amp;quot;, GA_ReadOnly ); // здесь надо заменить имя рисунка&lt;br /&gt;
	 if( poDataset == NULL )&lt;br /&gt;
    {&lt;br /&gt;
       return 0;&lt;br /&gt;
    }&lt;br /&gt;
	double        adfGeoTransform[6];&lt;br /&gt;
    printf( &amp;quot;Драйвер: %s/%s\n&amp;quot;,&lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetDescription(), &lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetMetadataItem( GDAL_DMD_LONGNAME ) );&lt;br /&gt;
    printf( &amp;quot;Размер %dx%dx%d\n&amp;quot;, &lt;br /&gt;
            poDataset-&amp;gt;GetRasterXSize(), poDataset-&amp;gt;GetRasterYSize(),&lt;br /&gt;
            poDataset-&amp;gt;GetRasterCount() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetProjectionRef()  != NULL )&lt;br /&gt;
        printf( &amp;quot;Проекция \&amp;quot;%s\&amp;quot;\n&amp;quot;, poDataset-&amp;gt;GetProjectionRef() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetGeoTransform( adfGeoTransform ) == CE_None )&lt;br /&gt;
    {&lt;br /&gt;
        printf( &amp;quot;Начало координат (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[0], adfGeoTransform[3] );&lt;br /&gt;
        printf( &amp;quot;Размер пиксела (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[1], adfGeoTransform[5] );&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Ну вот и все. На этом данная статья заканчивается. В ней Вы научились собирать GDAL и сделали тестовый пример для работы с ним. Успехов. Комментарии и отзывы приветствуются.&lt;br /&gt;
&lt;br /&gt;
Огромное СПАСИБО за помощь со сборкой и терпение пользователю Bishop.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Боровенский Евгений(LEXX413), Дмитрий(Bishop)&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4613</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4613"/>
		<updated>2012-04-01T17:25:01Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
#CPL - базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
#OGR - работа с векторными форматами. Список форматов: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
#GDAL - работа с растровыми форматами. Список форматов: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio(далее VS), ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем Release и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
После того как все будет сделано, нажимайте Configurate, все должно закончиться без ошибок и потом Generate. Далее открываем файл CURL.sln в папке build. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем &amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать ibjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем configurate, затем Generate. Идем в папку Debug, открываем libjpeg.sln, ставим Realese и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libpng''' - брать здесь http://www.libpng.org/pub/png/libpng.html последнюю версию http://download.sourceforge.net/libpng/lpng159.zip . Разархивировать, запустить CMake, произвести конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libpng.sln, ставим Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Дальше собираем libtiff''' - брать здесь ftp://ftp.remotesensing.org/pub/libtiff последнюю версию ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip , разархивируем ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и разархивируем как обычно [[Файл:Tiff.zip]]. Запускаем CMakt, делаем Configurate и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libtiff ставим Release и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Последняя из этих библиотек proj''' - брать здесь http://trac.osgeo.org/proj/ последнюю версию http://download.osgeo.org/proj/proj-4.8.0.zip . Разархивируем, кидаем туда этот фаил [[Файл:CMakeListsproj.zip]], запускаем CMake, прописываем пути до proj, жмем Configurate и Generate, открываем proj4, ставим Release и компилируем.&lt;br /&gt;
&lt;br /&gt;
На этом вся подготовка закончена, у нас есть все необходимые библиотеки.&lt;br /&gt;
Приступаем к сборке самого '''GDAL'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/gdal/wiki/DownloadSource последнюю версию gdal 1.9.0 ( http://download.osgeo.org/gdal/gdal190.zip ). Качаем архив [[Файл:Gdal_trank.zip]] . Разархивируем gdal в папку project, в разархивированную папку gdal разархивируем файлы из архива Gdal_trank.zip : папку cmake и файл CMakeLists.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMake и как обычно прописываем 2 пути, C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\build, нажимаем &lt;br /&gt;
Configure. Когда выскочит ошибка, прописываем пути до zlib: C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build и C:/project/zlib-1.2.6/lib/Release/zlib.lib в директориях соответственно ZLIB_INCLUDE_DIR и ZLIB_LIBRARY. Далее все пути надо будет прописывать примерно аналогично для директории INCLUDE и LIBRARY. Нажимаем Configure, получаем ошибку и прописываем пути для CURL C:/project/curl-7.24.0/include и C:/project/curl-7.24.0/lib/Release/libcurl_imp.lib. Нажимаем Configure, получаем ошибку и прописываем пути для EXPAT: C:/project/expat-2.0.1/lib/ и C:/project/expat-2.0.1/lib/Release/libexpat.lib. Нажимаем Configure, получаем ошибку и прописываем пути для GEOS: C:\project\geos-3.3.2\include и C:/project/geos-3.3.2/lib/Release/geos_c.lib. Нажимаем Configure, получаем ошибку и прописываем пути для PROJ: C:\project\proj-4.8.0\src и C:/project/proj-4.8.0/lib/Release/proj4.lib. Нажимаем Configure, получаем ошибку, идем в OGR и убираем галочку с OGR_PG. Нажимаем Configure, получаем ошибку и прописываем пути для JPEG: C:\project\jpeg-8d;C:\project\jpeg-8d\build и C:/project/jpeg-8d/lib/Release/libjpeg.lib. Нажимаем Configure, получаем ошибку и прописываем пути для TIFF: C:\project\tiff-4.0.1\libtiff;C:\project\tiff-4.0.1\build и C:\project\tiff-4.0.1\lib\Release\libtiff.lib. Нажимаем Configure, получаем ошибку и прописываем пути для PNG, тут внимательно! Первая строчка - пути до LIBRARY: C:/project/lpng159/lib/Release/libpng15.lib и C:\project\lpng159;C:\project\lpng159\build. Нажимаем Configure, все должно закончиться успешно, нажимаем Generate. Далее идем в папку C:\project\gdal-1.9.0\build и открываем файл gdallib.sln с помощью visual studio. Ставим Release  и компилируем. Если все прошло без ошибок, вы собрали GDAL! Поздравляю!&lt;br /&gt;
Теперь можно попробовать сделать тестовый пример для проверки работоспособности c 'njq nchfybws http://www.gdal.org/gdal_tutorial_ru.html . Создадим консольный проект C++ CLR. Пропишем следующие пути:&amp;lt;br /&amp;gt;&lt;br /&gt;
выбираем в меню Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;Компоновщик-&amp;gt;Ввод На этой странице в дополнительных зависимостях прописать C:\project\gdal-1.9.0\build\Release\gdal19.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
теперь в Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;C/C++ в Дополнительные зависимости включаемых файлов прописать&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\build\port&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\alg&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\gcore&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\port&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же необходимо в папку, где содержатся файлы проекта положить сформированные dll, собрынные нами ранее вместе с файлами .lib:&amp;lt;br /&amp;gt;&lt;br /&gt;
gdal19.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos_c.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libcurl.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libjpeg.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libpng15.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libtiff.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
proj4.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
zlib1.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же в эту папку положите какой-нибудь рисунок и напишите его имя вместо моего, у меня это 1.JPG.&lt;br /&gt;
Так выглядит мой код:&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
#include &amp;quot;gdal_priv.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
int main(array&amp;lt;System::String ^&amp;gt; ^args)&lt;br /&gt;
{&lt;br /&gt;
    GDALDataset  *poDataset;&lt;br /&gt;
    GDALAllRegister();&lt;br /&gt;
    poDataset = (GDALDataset *) GDALOpen( &amp;quot;1.JPG&amp;quot;, GA_ReadOnly ); // здесь надо заменить имя рисунка&lt;br /&gt;
	 if( poDataset == NULL )&lt;br /&gt;
    {&lt;br /&gt;
       return 0;&lt;br /&gt;
    }&lt;br /&gt;
	double        adfGeoTransform[6];&lt;br /&gt;
    printf( &amp;quot;Драйвер: %s/%s\n&amp;quot;,&lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetDescription(), &lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetMetadataItem( GDAL_DMD_LONGNAME ) );&lt;br /&gt;
    printf( &amp;quot;Размер %dx%dx%d\n&amp;quot;, &lt;br /&gt;
            poDataset-&amp;gt;GetRasterXSize(), poDataset-&amp;gt;GetRasterYSize(),&lt;br /&gt;
            poDataset-&amp;gt;GetRasterCount() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetProjectionRef()  != NULL )&lt;br /&gt;
        printf( &amp;quot;Проекция \&amp;quot;%s\&amp;quot;\n&amp;quot;, poDataset-&amp;gt;GetProjectionRef() );&lt;br /&gt;
    if( poDataset-&amp;gt;GetGeoTransform( adfGeoTransform ) == CE_None )&lt;br /&gt;
    {&lt;br /&gt;
        printf( &amp;quot;Начало координат (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[0], adfGeoTransform[3] );&lt;br /&gt;
        printf( &amp;quot;Размер пиксела (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[1], adfGeoTransform[5] );&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Боровенский Евгений(LEXX413), Дмитрий(Bishop)&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4612</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4612"/>
		<updated>2012-04-01T17:23:41Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
#CPL - базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
#OGR - работа с векторными форматами. Список форматов: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
#GDAL - работа с растровыми форматами. Список форматов: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio(далее VS), ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем Release и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
После того как все будет сделано, нажимайте Configurate, все должно закончиться без ошибок и потом Generate. Далее открываем файл CURL.sln в папке build. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем &amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать ibjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем configurate, затем Generate. Идем в папку Debug, открываем libjpeg.sln, ставим Realese и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libpng''' - брать здесь http://www.libpng.org/pub/png/libpng.html последнюю версию http://download.sourceforge.net/libpng/lpng159.zip . Разархивировать, запустить CMake, произвести конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libpng.sln, ставим Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Дальше собираем libtiff''' - брать здесь ftp://ftp.remotesensing.org/pub/libtiff последнюю версию ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip , разархивируем ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и разархивируем как обычно [[Файл:Tiff.zip]]. Запускаем CMakt, делаем Configurate и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libtiff ставим Release и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Последняя из этих библиотек proj''' - брать здесь http://trac.osgeo.org/proj/ последнюю версию http://download.osgeo.org/proj/proj-4.8.0.zip . Разархивируем, кидаем туда этот фаил [[Файл:CMakeListsproj.zip]], запускаем CMake, прописываем пути до proj, жмем Configurate и Generate, открываем proj4, ставим Release и компилируем.&lt;br /&gt;
&lt;br /&gt;
На этом вся подготовка закончена, у нас есть все необходимые библиотеки.&lt;br /&gt;
Приступаем к сборке самого '''GDAL'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/gdal/wiki/DownloadSource последнюю версию gdal 1.9.0 ( http://download.osgeo.org/gdal/gdal190.zip ). Качаем архив [[Файл:Gdal_trank.zip]] . Разархивируем gdal в папку project, в разархивированную папку gdal разархивируем файлы из архива Gdal_trank.zip : папку cmake и файл CMakeLists.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMake и как обычно прописываем 2 пути, C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\build, нажимаем &lt;br /&gt;
Configure. Когда выскочит ошибка, прописываем пути до zlib: C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build и C:/project/zlib-1.2.6/lib/Release/zlib.lib в директориях соответственно ZLIB_INCLUDE_DIR и ZLIB_LIBRARY. Далее все пути надо будет прописывать примерно аналогично для директории INCLUDE и LIBRARY. Нажимаем Configure, получаем ошибку и прописываем пути для CURL C:/project/curl-7.24.0/include и C:/project/curl-7.24.0/lib/Release/libcurl_imp.lib. Нажимаем Configure, получаем ошибку и прописываем пути для EXPAT: C:/project/expat-2.0.1/lib/ и C:/project/expat-2.0.1/lib/Release/libexpat.lib. Нажимаем Configure, получаем ошибку и прописываем пути для GEOS: C:\project\geos-3.3.2\include и C:/project/geos-3.3.2/lib/Release/geos_c.lib. Нажимаем Configure, получаем ошибку и прописываем пути для PROJ: C:\project\proj-4.8.0\src и C:/project/proj-4.8.0/lib/Release/proj4.lib. Нажимаем Configure, получаем ошибку, идем в OGR и убираем галочку с OGR_PG. Нажимаем Configure, получаем ошибку и прописываем пути для JPEG: C:\project\jpeg-8d;C:\project\jpeg-8d\build и C:/project/jpeg-8d/lib/Release/libjpeg.lib. Нажимаем Configure, получаем ошибку и прописываем пути для TIFF: C:\project\tiff-4.0.1\libtiff;C:\project\tiff-4.0.1\build и C:\project\tiff-4.0.1\lib\Release\libtiff.lib. Нажимаем Configure, получаем ошибку и прописываем пути для PNG, тут внимательно! Первая строчка - пути до LIBRARY: C:/project/lpng159/lib/Release/libpng15.lib и C:\project\lpng159;C:\project\lpng159\build. Нажимаем Configure, все должно закончиться успешно, нажимаем Generate. Далее идем в папку C:\project\gdal-1.9.0\build и открываем файл gdallib.sln с помощью visual studio. Ставим Release  и компилируем. Если все прошло без ошибок, вы собрали GDAL! Поздравляю!&lt;br /&gt;
Теперь можно попробовать сделать тестовый пример для проверки работоспособности c 'njq nchfybws http://www.gdal.org/gdal_tutorial_ru.html . Создадим консольный проект C++ CLR. Пропишем следующие пути:&amp;lt;br /&amp;gt;&lt;br /&gt;
выбираем в меню Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;Компоновщик-&amp;gt;Ввод На этой странице в дополнительных зависимостях прописать C:\project\gdal-1.9.0\build\Release\gdal19.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
теперь в Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;C/C++ в Дополнительные зависимости включаемых файлов прописать&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\build\port&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\alg&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\gcore&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\port&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же необходимо в папку, где содержатся файлы проекта положить сформированные dll, собрынные нами ранее вместе с файлами .lib:&amp;lt;br /&amp;gt;&lt;br /&gt;
gdal19.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos_c.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libcurl.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libjpeg.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libpng15.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libtiff.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
proj4.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
zlib1.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же в эту папку положите какой-нибудь рисунок и напишите его имя вместо моего, у меня это 1.JPG.&lt;br /&gt;
Так выглядит мой код:&lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
#include &amp;quot;gdal_priv.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
using namespace System;&lt;br /&gt;
&lt;br /&gt;
int main(array&amp;lt;System::String ^&amp;gt; ^args)&lt;br /&gt;
{&lt;br /&gt;
    GDALDataset  *poDataset;&lt;br /&gt;
&lt;br /&gt;
    GDALAllRegister();&lt;br /&gt;
&lt;br /&gt;
    poDataset = (GDALDataset *) GDALOpen( &amp;quot;1.JPG&amp;quot;, GA_ReadOnly ); // здесь надо заменить имя рисунка&lt;br /&gt;
	 if( poDataset == NULL )&lt;br /&gt;
    {&lt;br /&gt;
       return 0;&lt;br /&gt;
    }&lt;br /&gt;
	double        adfGeoTransform[6];&lt;br /&gt;
&lt;br /&gt;
    printf( &amp;quot;Драйвер: %s/%s\n&amp;quot;,&lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetDescription(), &lt;br /&gt;
            poDataset-&amp;gt;GetDriver()-&amp;gt;GetMetadataItem( GDAL_DMD_LONGNAME ) );&lt;br /&gt;
&lt;br /&gt;
    printf( &amp;quot;Размер %dx%dx%d\n&amp;quot;, &lt;br /&gt;
            poDataset-&amp;gt;GetRasterXSize(), poDataset-&amp;gt;GetRasterYSize(),&lt;br /&gt;
            poDataset-&amp;gt;GetRasterCount() );&lt;br /&gt;
&lt;br /&gt;
    if( poDataset-&amp;gt;GetProjectionRef()  != NULL )&lt;br /&gt;
        printf( &amp;quot;Проекция \&amp;quot;%s\&amp;quot;\n&amp;quot;, poDataset-&amp;gt;GetProjectionRef() );&lt;br /&gt;
&lt;br /&gt;
    if( poDataset-&amp;gt;GetGeoTransform( adfGeoTransform ) == CE_None )&lt;br /&gt;
    {&lt;br /&gt;
        printf( &amp;quot;Начало координат (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[0], adfGeoTransform[3] );&lt;br /&gt;
&lt;br /&gt;
        printf( &amp;quot;Размер пиксела (%.6f,%.6f)\n&amp;quot;,&lt;br /&gt;
                adfGeoTransform[1], adfGeoTransform[5] );&lt;br /&gt;
    }&lt;br /&gt;
	&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Боровенский Евгений(LEXX413), Дмитрий(Bishop)&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4611</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4611"/>
		<updated>2012-04-01T17:12:53Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
#CPL - базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
#OGR - работа с векторными форматами. Список форматов: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
#GDAL - работа с растровыми форматами. Список форматов: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio(далее VS), ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем Release и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
После того как все будет сделано, нажимайте Configurate, все должно закончиться без ошибок и потом Generate. Далее открываем файл CURL.sln в папке build. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем &amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать ibjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем configurate, затем Generate. Идем в папку Debug, открываем libjpeg.sln, ставим Realese и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libpng''' - брать здесь http://www.libpng.org/pub/png/libpng.html последнюю версию http://download.sourceforge.net/libpng/lpng159.zip . Разархивировать, запустить CMake, произвести конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libpng.sln, ставим Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Дальше собираем libtiff''' - брать здесь ftp://ftp.remotesensing.org/pub/libtiff последнюю версию ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip , разархивируем ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и разархивируем как обычно [[Файл:Tiff.zip]]. Запускаем CMakt, делаем Configurate и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libtiff ставим Release и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Последняя из этих библиотек proj''' - брать здесь http://trac.osgeo.org/proj/ последнюю версию http://download.osgeo.org/proj/proj-4.8.0.zip . Разархивируем, кидаем туда этот фаил [[Файл:CMakeListsproj.zip]], запускаем CMake, прописываем пути до proj, жмем Configurate и Generate, открываем proj4, ставим Release и компилируем.&lt;br /&gt;
&lt;br /&gt;
На этом вся подготовка закончена, у нас есть все необходимые библиотеки.&lt;br /&gt;
Приступаем к сборке самого '''GDAL'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/gdal/wiki/DownloadSource последнюю версию gdal 1.9.0 ( http://download.osgeo.org/gdal/gdal190.zip ). Качаем архив [[Файл:Gdal_trank.zip]] . Разархивируем gdal в папку project, в разархивированную папку gdal разархивируем файлы из архива Gdal_trank.zip : папку cmake и файл CMakeLists.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMake и как обычно прописываем 2 пути, C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\build, нажимаем &lt;br /&gt;
Configure. Когда выскочит ошибка, прописываем пути до zlib: C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build и C:/project/zlib-1.2.6/lib/Release/zlib.lib в директориях соответственно ZLIB_INCLUDE_DIR и ZLIB_LIBRARY. Далее все пути надо будет прописывать примерно аналогично для директории INCLUDE и LIBRARY. Нажимаем Configure, получаем ошибку и прописываем пути для CURL C:/project/curl-7.24.0/include и C:/project/curl-7.24.0/lib/Release/libcurl_imp.lib. Нажимаем Configure, получаем ошибку и прописываем пути для EXPAT: C:/project/expat-2.0.1/lib/ и C:/project/expat-2.0.1/lib/Release/libexpat.lib. Нажимаем Configure, получаем ошибку и прописываем пути для GEOS: C:\project\geos-3.3.2\include и C:/project/geos-3.3.2/lib/Release/geos_c.lib. Нажимаем Configure, получаем ошибку и прописываем пути для PROJ: C:\project\proj-4.8.0\src и C:/project/proj-4.8.0/lib/Release/proj4.lib. Нажимаем Configure, получаем ошибку, идем в OGR и убираем галочку с OGR_PG. Нажимаем Configure, получаем ошибку и прописываем пути для JPEG: C:\project\jpeg-8d;C:\project\jpeg-8d\build и C:/project/jpeg-8d/lib/Release/libjpeg.lib. Нажимаем Configure, получаем ошибку и прописываем пути для TIFF: C:\project\tiff-4.0.1\libtiff;C:\project\tiff-4.0.1\build и C:\project\tiff-4.0.1\lib\Release\libtiff.lib. Нажимаем Configure, получаем ошибку и прописываем пути для PNG, тут внимательно! Первая строчка - пути до LIBRARY: C:/project/lpng159/lib/Release/libpng15.lib и C:\project\lpng159;C:\project\lpng159\build. Нажимаем Configure, все должно закончиться успешно, нажимаем Generate. Далее идем в папку C:\project\gdal-1.9.0\build и открываем файл gdallib.sln с помощью visual studio. Ставим Release  и компилируем. Если все прошло без ошибок, вы собрали GDAL! Поздравляю!&lt;br /&gt;
Теперь можно попробовать сделать тестовый пример для проверки работоспособности c 'njq nchfybws http://www.gdal.org/gdal_tutorial_ru.html . Создадим консольный проект C++ CLR. Пропишем следующие пути:&amp;lt;br /&amp;gt;&lt;br /&gt;
выбираем в меню Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;Компоновщик-&amp;gt;Ввод На этой странице в дополнительных зависимостях прописать C:\project\gdal-1.9.0\build\Release\gdal19.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
теперь в Проект-&amp;gt;Свойства...-&amp;gt;Свойства конфигурации-&amp;gt;C/C++ в Дополнительные зависимости включаемых файлов прописать&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\build\port&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\alg&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\gcore&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\gdal-1.9.0\port&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же необходимо в папку, где содержатся файлы проекта положить сформированные dll, собрынные нами ранее вместе с файлами .lib:&amp;lt;br /&amp;gt;&lt;br /&gt;
gdal19.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
geos_c.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libcurl.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libjpeg.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libpng15.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
libtiff.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
proj4.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
zlib1.dll  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Боровенский Евгений(LEXX413), Дмитрий(Bishop)&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4606</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4606"/>
		<updated>2012-04-01T15:30:17Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
#CPL - базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
#OGR - работа с векторными форматами. Список форматов: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
#GDAL - работа с растровыми форматами. Список форматов: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio(далее VS), ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем Release и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
После того как все будет сделано, нажимайте Configurate, все должно закончиться без ошибок и потом Generate. Далее открываем файл CURL.sln в папке build. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем &amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать ibjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем configurate, затем Generate. Идем в папку Debug, открываем libjpeg.sln, ставим Realese и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libpng''' - брать здесь http://www.libpng.org/pub/png/libpng.html последнюю версию http://download.sourceforge.net/libpng/lpng159.zip . Разархивировать, запустить CMake, произвести конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libpng.sln, ставим Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Дальше собираем libtiff''' - брать здесь ftp://ftp.remotesensing.org/pub/libtiff последнюю версию ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip , разархивируем ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и разархивируем как обычно [[Файл:Tiff.zip]]. Запускаем CMakt, делаем Configurate и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libtiff ставим Release и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Последняя из этих библиотек proj''' - брать здесь http://trac.osgeo.org/proj/ последнюю версию http://download.osgeo.org/proj/proj-4.8.0.zip . Разархивируем, кидаем туда этот фаил [[Файл:CMakeListsproj.zip]], запускаем CMake, прописываем пути до proj, жмем Configurate и Generate, открываем proj4, ставим Release и компилируем.&lt;br /&gt;
&lt;br /&gt;
На этом вся подготовка закончена, у нас есть все необходимые библиотеки.&lt;br /&gt;
Приступаем к сборке самого '''GDAL'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/gdal/wiki/DownloadSource последнюю версию gdal 1.9.0 ( http://download.osgeo.org/gdal/gdal190.zip ). Качаем архив [[Файл:Gdal_trank.zip]] . Разархивируем gdal в папку project, в разархивированную папку gdal разархивируем файлы из архива Gdal_trank.zip : папку cmake и файл CMakeLists.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMake и как обычно прописываем 2 пути, C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\build, нажимаем &lt;br /&gt;
Configure. Когда выскочит ошибка, прописываем пути до zlib: C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build и C:/project/zlib-1.2.6/lib/Release/zlib.lib в директориях соответственно ZLIB_INCLUDE_DIR и ZLIB_LIBRARY. Далее все пути надо будет прописывать примерно аналогично для директории INCLUDE и LIBRARY. Нажимаем Configure, получаем ошибку и прописываем пути для CURL C:/project/curl-7.24.0/include и C:/project/curl-7.24.0/lib/Release/libcurl_imp.lib. Нажимаем Configure, получаем ошибку и прописываем пути для EXPAT: C:/project/expat-2.0.1/lib/ и C:/project/expat-2.0.1/lib/Release/libexpat.lib. Нажимаем Configure, получаем ошибку и прописываем пути для GEOS: C:\project\geos-3.3.2\include и C:/project/geos-3.3.2/lib/Release/geos_c.lib. Нажимаем Configure, получаем ошибку и прописываем пути для PROJ: C:\project\proj-4.8.0\src и C:/project/proj-4.8.0/lib/Release/proj4.lib. Нажимаем Configure, получаем ошибку, идем в OGR и убираем галочку с OGR_PG. Нажимаем Configure, получаем ошибку и прописываем пути для JPEG: C:\project\jpeg-8d;C:\project\jpeg-8d\build и C:/project/jpeg-8d/lib/Release/libjpeg.lib. Нажимаем Configure, получаем ошибку и прописываем пути для TIFF: C:\project\tiff-4.0.1\libtiff;C:\project\tiff-4.0.1\build и C:\project\tiff-4.0.1\lib\Release\libtiff.lib. Нажимаем Configure, получаем ошибку и прописываем пути для PNG, тут внимательно! Первая строчка - пути до LIBRARY: C:/project/lpng159/lib/Release/libpng15.lib и C:\project\lpng159;C:\project\lpng159\build. Нажимаем Configure, все должно закончиться успешно, нажимаем Generate. Далее идем в папку C:\project\gdal-1.9.0\build и открываем файл gdallib.sln с помощью visual studio. Ставим Release  и компилируем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Боровенский Евгений(LEXX413), Дмитрий(Bishop)&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4605</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4605"/>
		<updated>2012-04-01T15:17:41Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
#CPL - базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
#OGR - работа с векторными форматами. Список форматов: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
#GDAL - работа с растровыми форматами. Список форматов: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio(далее VS), ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем Release и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
После того как все будет сделано, нажимайте Configurate, все должно закончиться без ошибок и потом Generate. Далее открываем файл CURL.sln в папке build. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем &amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать ibjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем configurate, затем Generate. Идем в папку Debug, открываем libjpeg.sln, ставим Realese и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libpng''' - брать здесь http://www.libpng.org/pub/png/libpng.html последнюю версию http://download.sourceforge.net/libpng/lpng159.zip . Разархивировать, запустить CMake, произвести конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libpng.sln, ставим Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Дальше собираем libtiff''' - брать здесь ftp://ftp.remotesensing.org/pub/libtiff последнюю версию ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip , разархивируем ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и разархивируем как обычно [[Файл:Tiff.zip]]. Запускаем CMakt, делаем Configurate и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libtiff ставим Release и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Последняя из этих библиотек proj''' - брать здесь http://trac.osgeo.org/proj/ последнюю версию http://download.osgeo.org/proj/proj-4.8.0.zip . Разархивируем, кидаем туда этот фаил [[Файл:CMakeListsproj.zip]], запускаем CMake, прописываем пути до proj, жмем Configurate и Generate, открываем proj4, ставим Release и компилируем.&lt;br /&gt;
&lt;br /&gt;
На этом вся подготовка закончена, у нас есть все необходимые библиотеки.&lt;br /&gt;
Приступаем к сборке самого '''GDAL'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/gdal/wiki/DownloadSource последнюю версию gdal 1.9.0 ( http://download.osgeo.org/gdal/gdal190.zip ). Качаем архив [[Файл:Gdal_trank.zip]] . Разархивируем gdal в папку project, в разархивированную папку gdal разархивируем файлы из архива Gdal_trank.zip : папку cmake и файл CMakeLists.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMake и как обычно прописываем 2 пути, C:\project\gdal-1.9.0 и C:\project\gdal-1.9.0\build, нажимаем &lt;br /&gt;
Configure. Когда выскочит ошибка, прописываем пути до zlib: C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build и C:/project/zlib-1.2.6/lib/Release/zlib.lib в директориях соответственно ZLIB_INCLUDE_DIR и ZLIB_LIBRARY. Далее все пути надо будет прописывать примерно аналогично для директории INCLUDE и LIBRARY. Нажимаем Configure, получаем ошибку и прописываем пути для CURL C:/project/curl-7.24.0/include и C:/project/curl-7.24.0/lib/Release/libcurl_imp.lib. Нажимаем Configure, получаем ошибку и прописываем пути для EXPAT: C:/project/expat-2.0.1/lib/ и C:/project/expat-2.0.1/lib/Release/libexpat.lib. Нажимаем Configure, получаем ошибку и прописываем пути для GEOS: C:\project\geos-3.3.2\include и C:/project/geos-3.3.2/lib/Release/geos_c.lib. Нажимаем Configure, получаем ошибку и прописываем пути для PROJ: C:\project\proj-4.8.0\src и C:/project/proj-4.8.0/lib/Release/proj4.lib. Нажимаем Configure, получаем ошибку, идем в OGR и убираем галочку с OGR_PG. Нажимаем Configure, получаем ошибку и прописываем пути для JPEG: C:\project\jpeg-8d;C:\project\jpeg-8d\build и C:/project/jpeg-8d/lib/Release/libjpeg.lib. Нажимаем Configure, получаем ошибку и прописываем пути для TIFF: C:\project\tiff-4.0.1\libtiff;C:\project\tiff-4.0.1\build и C:project/tiff-4.0.1/lib/Release/libtiff.lib. Нажимаем Configure, получаем ошибку и прописываем пути для PNG, тут внимательно! Первая строчка - пути до LIBRARY: C:/project/lpng159/lib/Release/libpng15.lib и C:\project\lpng159;C:\project\lpng159\build. Нажимаем Configure, все должно закончиться успешно, нажимаем Generate. Далее идем в папку C:\project\gdal-1.9.0\build и открываем файл gdallib.sln с помощью visual studio. Ставим Release  и компилируем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Боровенский Евгений(LEXX413), Дмитрий(Bishop)&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4602</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4602"/>
		<updated>2012-04-01T09:56:32Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
#CPL - базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
#OGR - работа с векторными форматами. Список форматов: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
#GDAL - работа с растровыми форматами. Список форматов: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio(далее VS), ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем Release и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
После того как все будет сделано, нажимайте Configurate, все должно закончиться без ошибок и потом Generate. Далее открываем файл CURL.sln в папке build. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем &amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать ibjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем configurate, затем Generate. Идем в папку Debug, открываем libjpeg.sln, ставим Realese и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libpng''' - брать здесь http://www.libpng.org/pub/png/libpng.html последнюю версию http://download.sourceforge.net/libpng/lpng159.zip . Разархивировать, запустить CMake, произвести конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libpng.sln, ставим Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Дальше собираем libtiff''' - брать здесь ftp://ftp.remotesensing.org/pub/libtiff последнюю версию ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip , разархивируем ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и разархивируем как обычно [[Файл:Tiff.zip]]. Запускаем CMakt, делаем Configurate и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libtiff ставим Release и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Последняя из этих библиотек proj''' - брать здесь http://trac.osgeo.org/proj/ последнюю версию http://download.osgeo.org/proj/proj-4.8.0.zip . Разархивируем, кидаем туда этот фаил [[Файл:CMakeListsproj.zip]], запускаем CMake, прописываем пути до proj, жмем Configurate и Generate, открываем proj4, ставим Release и компилируем.&lt;br /&gt;
&lt;br /&gt;
На этом вся подготовка закончена, у нас есть все необходимые библиотеки.&lt;br /&gt;
Приступаем к сборке самого '''GDAL'''.&lt;br /&gt;
Скачиваем отсюда http://trac.osgeo.org/gdal/wiki/DownloadSource последнюю версию gdal 1.9.0 ( http://download.osgeo.org/gdal/gdal190.zip ). Качаем архив [[Файл:Gdal_trank.zip]] . Разархивируем gdal в папку project, в разархивированную папку gdal разархивируем файлы из архива Gdal_trank.zip : папку cmake и файл CMakeLists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Боровенский Евгений(LEXX413), Дмитрий(Bishop)&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Gdal_trank.zip&amp;diff=4601</id>
		<title>Файл:Gdal trank.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Gdal_trank.zip&amp;diff=4601"/>
		<updated>2012-04-01T08:23:03Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4456</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4456"/>
		<updated>2012-03-22T20:56:36Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR&amp;lt;br /&amp;gt;&lt;br /&gt;
GDA&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio(далее VS), ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем Release и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
После того как все будет сделано, нажимайте Configurate, все должно закончиться без ошибок и потом Generate. Далее открываем файл CURL.sln в папке build. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем &amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать ibjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем configurate, затем Generate. Идем в папку Debug, открываем libjpeg.sln, ставим Realese и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libpng''' - брать здесь http://www.libpng.org/pub/png/libpng.html последнюю версию http://download.sourceforge.net/libpng/lpng159.zip . Разархивировать, запустить CMake, произвести конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libpng.sln, ставим Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Дальше собираем libtiff''' - брать здесь ftp://ftp.remotesensing.org/pub/libtiff последнюю версию ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip , разархивируем ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и разархивируем как обычно [[Файл:Tiff.zip]]. Запускаем CMakt, делаем Configurate и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libtiff ставим Release и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Последняя из этих библиотек proj''' - брать здесь http://trac.osgeo.org/proj/ последнюю версию http://download.osgeo.org/proj/proj-4.8.0.zip . Разархивируем, кидаем туда этот фаил [[Файл:CMakeListsproj.zip]], запускаем CMake, прописываем пути до proj, жмем Configurate и Generate, открываем proj4, ставим Release и компилируем.&lt;br /&gt;
&lt;br /&gt;
На этом вся подготовка закончена, у нас есть все необходимые библиотеки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Боровенский Евгений(LEXX413), Дмитрий(Bishop)&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:CMakeListsproj.zip&amp;diff=4455</id>
		<title>Файл:CMakeListsproj.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:CMakeListsproj.zip&amp;diff=4455"/>
		<updated>2012-03-22T20:55:27Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: загружена новая версия «Файл:CMakeListsproj.zip»: Новая&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:CMakeListsproj.zip&amp;diff=4454</id>
		<title>Файл:CMakeListsproj.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:CMakeListsproj.zip&amp;diff=4454"/>
		<updated>2012-03-22T20:49:04Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Tiff.zip&amp;diff=4453</id>
		<title>Файл:Tiff.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Tiff.zip&amp;diff=4453"/>
		<updated>2012-03-22T20:46:12Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: загружена новая версия «Файл:Tiff.zip»: Новая&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4452</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4452"/>
		<updated>2012-03-22T20:37:49Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR&amp;lt;br /&amp;gt;&lt;br /&gt;
GDA&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio(далее VS), ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем Release и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
После того как все будет сделано, нажимайте Configurate, все должно закончиться без ошибок и потом Generate. Далее открываем файл CURL.sln в папке build. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем &amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать ibjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем configurate, затем Generate. Идем в папку Debug, открываем libjpeg.sln, ставим Realese и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать libpng''' - брать здесь http://www.libpng.org/pub/png/libpng.html последнюю версию http://download.sourceforge.net/libpng/lpng159.zip . Разархивировать, запустить CMake, произвести конфигурацию. Прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libpng.sln, ставим Release и компилируем. Файлы из папки ''C:\project\lpng159\build\Release'' переносим в ''C:\project\lpng159\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Дальше собираем libtiff''' - брать здесь ftp://ftp.remotesensing.org/pub/libtiff последнюю версию ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip , разархивируем ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и разархивируем как обычно [[Файл:Tiff.zip]]. Запускаем CMakt, делаем Configurate и прописываем пути для ZLIB_INCLUDE_DIR и ZLIB_LIBRARY-NOTFOUND как делали это выше.  Нажимаем Configurate и Generate, далее открываем libtiff ставим Release и компилируем.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4451</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4451"/>
		<updated>2012-03-22T20:13:43Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR&amp;lt;br /&amp;gt;&lt;br /&gt;
GDA&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio(далее VS), ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем Release и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
После того как все будет сделано, нажимайте Configurate, все должно закончиться без ошибок и потом Generate. Далее открываем файл CURL.sln в папке build. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем &amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать ibjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем configurate, затем Generate. Идем в папку Debug, открываем libjpeg.sln, ставим Realese и компилируем. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Дальше собираем libtiff''' - брать здесь ftp://ftp.remotesensing.org/pub/libtiff последнюю версию ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.1.zip , разархивируем ''C:\project\tiff-4.0.1'', качаем CMakeLists и еще пару файлов и разархивируем как обычно [[Файл:Tiff.zip]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Tiff.zip&amp;diff=4450</id>
		<title>Файл:Tiff.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Tiff.zip&amp;diff=4450"/>
		<updated>2012-03-22T20:13:11Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4449</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4449"/>
		<updated>2012-03-22T20:01:20Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR&amp;lt;br /&amp;gt;&lt;br /&gt;
GDA&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio(далее VS), ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем Release и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
После того как все будет сделано, нажимайте Configurate, все должно закончиться без ошибок и потом Generate. Далее открываем файл CURL.sln в папке build. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем &amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее будем собирать ibjpeg'''  - брать здесь http://www.ijg.org/ последнюю версию http://www.ijg.org/files/jpegsr8d.zip .&lt;br /&gt;
CMakeLists скачиваем тут [[Файл:CMakeListsjpeg.zip]] и разархивируем, кладем в папку ''C:\project\jpeg-8d''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Запускаем CMAke и делаем configurate, затем Generate. Идем в папку Debug, открываем libjpeg.sln, ставим Realese и компилируем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:CMakeListsjpeg.zip&amp;diff=4448</id>
		<title>Файл:CMakeListsjpeg.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:CMakeListsjpeg.zip&amp;diff=4448"/>
		<updated>2012-03-22T19:56:30Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: для jpeg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;для jpeg&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:CMakeLists.zip&amp;diff=4447</id>
		<title>Файл:CMakeLists.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:CMakeLists.zip&amp;diff=4447"/>
		<updated>2012-03-22T19:54:57Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: загружена новая версия «Файл:CMakeLists.zip»: Возврат к версии от 18:01, 22 марта 2012&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CMakeLists.txt для expat&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:CMakeLists.zip&amp;diff=4446</id>
		<title>Файл:CMakeLists.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:CMakeLists.zip&amp;diff=4446"/>
		<updated>2012-03-22T19:53:19Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: загружена новая версия «Файл:CMakeLists.zip»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CMakeLists.txt для expat&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4445</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4445"/>
		<updated>2012-03-22T19:44:38Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR&amp;lt;br /&amp;gt;&lt;br /&gt;
GDA&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio(далее VS), ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем Release и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
После того как все будет сделано, нажимайте Configurate, все должно закончиться без ошибок и потом Generate. Далее открываем файл CURL.sln в папке build. Заходим в свойства проекта (для этого в Обозревателе решений надо выбрать libcurl)(Проект -&amp;gt; Свойства), далее Свойства конфигурации -&amp;gt; Компоновщик -&amp;gt; Ввод, далее в окне справа Дополнительные зависимости, нажимаем Изменить и удаляем &amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY-NOTFOUND&amp;lt;br /&amp;gt;&lt;br /&gt;
Нажимаем применить и ОК, далее компилируем проект. После успешной компиляции помещаем файлы из папки ''C:\project\curl-7.24.0\build\lib\Debug'' в папку ''C:\project\curl-7.24.0\lib\Realese'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4444</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4444"/>
		<updated>2012-03-22T19:32:09Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR&amp;lt;br /&amp;gt;&lt;br /&gt;
GDA&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio(далее VS), ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем Release и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем  curl.''' Качаем отсюда http://curl.haxx.se/download.html последнюю версию http://curl.haxx.se/download/curl-7.24.0.zip и разархивируем в ''C:\project\curl-7.24.0''. Идем в CMake, указываем пути и нажимаем Configurate. Далее прописываем в&amp;lt;br /&amp;gt;&lt;br /&gt;
WSOCK32_LIBRARY - WSOCK32.lib&amp;lt;br /&amp;gt;&lt;br /&gt;
WS2_32_LIBRARY -  WS2_32.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_INCLUDE_DIR прописываем два пути через точку запятую:&amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6;C:\project\zlib-1.2.6\build &amp;lt;br /&amp;gt;&lt;br /&gt;
в ZLIB_LIBRARY прописываем путь до zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
C:\project\zlib-1.2.6\lib\Release\zlib.lib &amp;lt;br /&amp;gt;&lt;br /&gt;
И последнее расставляем галочки как на скриншоте, см. Рис. 6: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 6.JPG|center|Рис. 6]]&lt;br /&gt;
После того как все будет сделано, нажимайте Configurate, все должно закончиться без ошибок и потом Generate. Далее открываем файл CURL.sln в папке build.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A0%D0%B8%D1%81._6.JPG&amp;diff=4443</id>
		<title>Файл:Рис. 6.JPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A0%D0%B8%D1%81._6.JPG&amp;diff=4443"/>
		<updated>2012-03-22T19:30:33Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: Рис. 6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Рис. 6&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4442</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4442"/>
		<updated>2012-03-22T19:15:45Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR&amp;lt;br /&amp;gt;&lt;br /&gt;
GDA&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio(далее VS), ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем Release и компилируем. Если у вас возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
на&amp;lt;br /&amp;gt;&lt;br /&gt;
''int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте заново.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее если возникла ошибка &amp;lt;br /&amp;gt;&lt;br /&gt;
''Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit''&amp;lt;br /&amp;gt;&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = std::toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
напишите&amp;lt;br /&amp;gt;&lt;br /&gt;
''str[i] = toupper(str[i]);''&amp;lt;br /&amp;gt;&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4441</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4441"/>
		<updated>2012-03-22T19:14:17Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR&amp;lt;br /&amp;gt;&lt;br /&gt;
GDA&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio(далее VS), ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем Release и компилируем. Если у вас возникла ошибка &lt;br /&gt;
Ошибка 1 error C2668: log: неоднозначный вызов перегруженной функции C:\project\geos-3.3.2\src\operation\buffer\BufferOp.cpp	97 1 geos-static&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле замените строчку&lt;br /&gt;
int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10) + 1.0);&lt;br /&gt;
на&lt;br /&gt;
int bufEnvPrecisionDigits = (int) (std::log(bufEnvMax) / std::log(10.0) + 1.0);&lt;br /&gt;
и скомпилируйте заново.&lt;br /&gt;
Далее если возникла ошибка &lt;br /&gt;
Ошибка 1 error C2039: toupper: не является членом &amp;quot;std&amp;quot;	C:\project\geos-3.3.2\tests\unit\capi\GEOSisValidDetailTest.cpp	60 1 geos_unit&lt;br /&gt;
кликните по ней 2 раза мышкой и в открывшемся файле сверху припишите #include &amp;lt;ctype.h&amp;gt;, а вместо&lt;br /&gt;
str[i] = std::toupper(str[i]);&lt;br /&gt;
напишите&lt;br /&gt;
str[i] = toupper(str[i]);&lt;br /&gt;
и скомпилируйте еще раз. После того как все закончится успешно скопируйте файлы из папки ''C:\project\geos-3.3.2\build\lib\Release'' в папку ''C:\project\geos-3.3.2\lib\Release''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4440</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4440"/>
		<updated>2012-03-22T18:58:34Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR&amp;lt;br /&amp;gt;&lt;br /&gt;
GDA&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio(далее VS), ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее соберем библиотеку geos'''. Качаем отсюда http://trac.osgeo.org/geos/ последнюю версию http://download.osgeo.org/geos/geos-3.3.2.tar.bz2 . Извлекаем в ''C:\project\geos-3.3.2'' . Делаем конфигурацию в CMake, после этого в разделе Ungrouped Entries убираем калочку с BUILD_TESTING (см. Рис. 5). Примечание, чтобы у вас появился раздел Ungrouped Entries, поставьте галки в Grouped и Advanced (см. Рис. 5).&lt;br /&gt;
[[Файл:Рис. 5.JPG|center|Рис. 5]]&lt;br /&gt;
Далее нажимаем Generate и открываем в VS файл ''C:\project\geos-3.3.2\build\geos.sln'' , выставляем Release и компилируем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A0%D0%B8%D1%81._5.JPG&amp;diff=4439</id>
		<title>Файл:Рис. 5.JPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A0%D0%B8%D1%81._5.JPG&amp;diff=4439"/>
		<updated>2012-03-22T18:57:46Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: Рис. 5&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Рис. 5&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4438</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4438"/>
		<updated>2012-03-22T18:41:26Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR&amp;lt;br /&amp;gt;&lt;br /&gt;
GDA&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. Разархивируем ''C:\project\zlib-1.2.6''&amp;lt;br /&amp;gt;&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio, ставим Release. А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся (Рис. 4), если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h.&lt;br /&gt;
[[Файл:Рис. 4.JPG|center|Рис. 4]]&lt;br /&gt;
После всего этого компилируем проект и получаем 3 файла в папке ''C:/project/zlib-1.2.6/Debug/Release''. Перенесем их в папку ''C:/project/zlib-1.2.6/lib/Release'' для унификации, эту папку необходимо создать самим.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A0%D0%B8%D1%81._4.JPG&amp;diff=4437</id>
		<title>Файл:Рис. 4.JPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A0%D0%B8%D1%81._4.JPG&amp;diff=4437"/>
		<updated>2012-03-22T18:40:20Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: Рис. 4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Рис. 4&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4436</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4436"/>
		<updated>2012-03-22T18:29:42Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR&amp;lt;br /&amp;gt;&lt;br /&gt;
GDA&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.exp&amp;lt;br /&amp;gt;&lt;br /&gt;
libexpat.lib&amp;lt;br /&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена.&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio, ставим Release,А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся, если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h. После всего этого компилируем проект и получаем 3 файла в папке C:/projects/zlib-1.2.6/Debug/Release. Перенесем их в папку C:/projects/zlib-1.2.6/lib/Release для унификации, эту папку необходимо создать самим.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4435</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4435"/>
		<updated>2012-03-22T18:28:45Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&lt;br /&gt;
OGR&lt;br /&gt;
GDA&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 2]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7). &lt;br /&gt;
[[Файл:Рис. 3.JPG|center|Рис. 3]]&lt;br /&gt;
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы&lt;br /&gt;
''libexpat.dll&lt;br /&gt;
libexpat.exp&lt;br /&gt;
libexpat.lib''&lt;br /&gt;
&lt;br /&gt;
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена.&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/project/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть файл ''C://project/zlib-1.2.6/zconf.h'' т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем файл zlib.sln с помощью Visual Studio, ставим Release,А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся, если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h. После всего этого компилируем проект и получаем 3 файла в папке C:/projects/zlib-1.2.6/Debug/Release. Перенесем их в папку C:/projects/zlib-1.2.6/lib/Release для унификации, эту папку необходимо создать самим.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A0%D0%B8%D1%81._3.JPG&amp;diff=4434</id>
		<title>Файл:Рис. 3.JPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A0%D0%B8%D1%81._3.JPG&amp;diff=4434"/>
		<updated>2012-03-22T18:28:06Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: Рис. 3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Рис. 3&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4433</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4433"/>
		<updated>2012-03-22T18:16:59Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&lt;br /&gt;
OGR&lt;br /&gt;
GDA&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
''Where is the source code'' - это то, куда вы разархивировали expat, например ''C:/project/expat-2.0.1'' и&lt;br /&gt;
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).&lt;br /&gt;
[[Файл:Рис. 2.JPG|center|Рис. 1]]&lt;br /&gt;
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug и компилируем проект(нажимаем F7). После этого в папке C:/projects/expat-2.0.1/lib/Release должны появиться следующие файлы&lt;br /&gt;
libexpat.dll&lt;br /&gt;
libexpat.exp&lt;br /&gt;
libexpat.lib&lt;br /&gt;
Это мы скомпилировали так называему shared dll. Есть еще Static dll - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&lt;br /&gt;
Далее делаем тоже самое для zlib, качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена.&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/projects/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть фаил C://projects/zlib-1.2.6/zconf.h т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем фаил zlib.sln с помощью Visual Studio, ставим Release,А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся, если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h. После всего этого компилируем проект и получаем 3 файла в папке C:/projects/zlib-1.2.6/Debug/Release. Перенесем их в папку C:/projects/zlib-1.2.6/lib/Release для унификации, эту папку необходимо создать самим.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A0%D0%B8%D1%81._2.JPG&amp;diff=4432</id>
		<title>Файл:Рис. 2.JPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A0%D0%B8%D1%81._2.JPG&amp;diff=4432"/>
		<updated>2012-03-22T18:15:27Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4431</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4431"/>
		<updated>2012-03-22T18:10:16Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&lt;br /&gt;
OGR&lt;br /&gt;
GDA&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
Where is the source code - это то, куда вы разархивировали expat, например C:/projects/expat-2.0.1 и&lt;br /&gt;
Where to build the binaries – это та папка, куда сгенерируются файлы проекта C:/projects/expat-2.0.1/build .&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate. В папке build должен появиться фаил libexpat.sln, открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug и компилируем проект(нажимаем F7). После этого в папке C:/projects/expat-2.0.1/lib/Release должны появиться следующие файлы&lt;br /&gt;
libexpat.dll&lt;br /&gt;
libexpat.exp&lt;br /&gt;
libexpat.lib&lt;br /&gt;
Это мы скомпилировали так называему shared dll. Есть еще Static dll - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&lt;br /&gt;
Далее делаем тоже самое для zlib, качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена.&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/projects/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть фаил C://projects/zlib-1.2.6/zconf.h т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем фаил zlib.sln с помощью Visual Studio, ставим Release,А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся, если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h. После всего этого компилируем проект и получаем 3 файла в папке C:/projects/zlib-1.2.6/Debug/Release. Перенесем их в папку C:/projects/zlib-1.2.6/lib/Release для унификации, эту папку необходимо создать самим.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4430</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4430"/>
		<updated>2012-03-22T18:09:54Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&lt;br /&gt;
OGR&lt;br /&gt;
GDA&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файлы (см. Рис. 1), а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Файл:Рис. 1.JPG|200px|thumb|center|Рис. 1]]&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
Where is the source code - это то, куда вы разархивировали expat, например C:/projects/expat-2.0.1 и&lt;br /&gt;
Where to build the binaries – это та папка, куда сгенерируются файлы проекта C:/projects/expat-2.0.1/build .&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate. В папке build должен появиться фаил libexpat.sln, открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug и компилируем проект(нажимаем F7). После этого в папке C:/projects/expat-2.0.1/lib/Release должны появиться следующие файлы&lt;br /&gt;
libexpat.dll&lt;br /&gt;
libexpat.exp&lt;br /&gt;
libexpat.lib&lt;br /&gt;
Это мы скомпилировали так называему shared dll. Есть еще Static dll - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&lt;br /&gt;
Далее делаем тоже самое для zlib, качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена.&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/projects/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть фаил C://projects/zlib-1.2.6/zconf.h т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем фаил zlib.sln с помощью Visual Studio, ставим Release,А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся, если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h. После всего этого компилируем проект и получаем 3 файла в папке C:/projects/zlib-1.2.6/Debug/Release. Перенесем их в папку C:/projects/zlib-1.2.6/lib/Release для унификации, эту папку необходимо создать самим.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A0%D0%B8%D1%81._1.JPG&amp;diff=4429</id>
		<title>Файл:Рис. 1.JPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A0%D0%B8%D1%81._1.JPG&amp;diff=4429"/>
		<updated>2012-03-22T18:07:09Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4428</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4428"/>
		<updated>2012-03-22T18:04:23Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&lt;br /&gt;
OGR&lt;br /&gt;
GDA&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Теперь про зависимости.''' Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Коротко о сборке.''' В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Первой библиотекой будем компилировать expat.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Первое''''': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Второе''''': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файла, а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Третье''''': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
Where is the source code - это то, куда вы разархивировали expat, например C:/projects/expat-2.0.1 и&lt;br /&gt;
Where to build the binaries – это та папка, куда сгенерируются файлы проекта C:/projects/expat-2.0.1/build .&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate. В папке build должен появиться фаил libexpat.sln, открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug и компилируем проект(нажимаем F7). После этого в папке C:/projects/expat-2.0.1/lib/Release должны появиться следующие файлы&lt;br /&gt;
libexpat.dll&lt;br /&gt;
libexpat.exp&lt;br /&gt;
libexpat.lib&lt;br /&gt;
Это мы скомпилировали так называему shared dll. Есть еще Static dll - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&lt;br /&gt;
Далее делаем тоже самое для zlib, качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена.&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/projects/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть фаил C://projects/zlib-1.2.6/zconf.h т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем фаил zlib.sln с помощью Visual Studio, ставим Release,А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся, если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h. После всего этого компилируем проект и получаем 3 файла в папке C:/projects/zlib-1.2.6/Debug/Release. Перенесем их в папку C:/projects/zlib-1.2.6/lib/Release для унификации, эту папку необходимо создать самим.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4427</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4427"/>
		<updated>2012-03-22T18:03:00Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&lt;br /&gt;
OGR&lt;br /&gt;
GDA&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь про зависимости. Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Коротко о сборке. В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первой библиотекой будем компилировать '''expat'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Первое'': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Второе'': берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек, например сюда ''C:\project\expat-2.0.1\''. Обратите внимание, что эта и все последующие папки должны быть разархивированы так, что в конечной папке, в данном случае expat-2.0.1, должны лежать различные папки и файла, а не вложенная папка expat-2.0.1(для данного примера).&amp;lt;br /&amp;gt;&lt;br /&gt;
''Третье'': скачиваем фаил CMakeLists.txt [[Файл:CMakeLists.zip]] и помещаем в разархивированную папку expat-2.0.1.&amp;lt;br /&amp;gt;&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
Where is the source code - это то, куда вы разархивировали expat, например C:/projects/expat-2.0.1 и&lt;br /&gt;
Where to build the binaries – это та папка, куда сгенерируются файлы проекта C:/projects/expat-2.0.1/build .&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate. В папке build должен появиться фаил libexpat.sln, открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug и компилируем проект(нажимаем F7). После этого в папке C:/projects/expat-2.0.1/lib/Release должны появиться следующие файлы&lt;br /&gt;
libexpat.dll&lt;br /&gt;
libexpat.exp&lt;br /&gt;
libexpat.lib&lt;br /&gt;
Это мы скомпилировали так называему shared dll. Есть еще Static dll - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&lt;br /&gt;
Далее делаем тоже самое для zlib, качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена.&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/projects/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть фаил C://projects/zlib-1.2.6/zconf.h т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем фаил zlib.sln с помощью Visual Studio, ставим Release,А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся, если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h. После всего этого компилируем проект и получаем 3 файла в папке C:/projects/zlib-1.2.6/Debug/Release. Перенесем их в папку C:/projects/zlib-1.2.6/lib/Release для унификации, эту папку необходимо создать самим.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:CMakeLists.zip&amp;diff=4426</id>
		<title>Файл:CMakeLists.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:CMakeLists.zip&amp;diff=4426"/>
		<updated>2012-03-22T18:01:36Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: CMakeLists.txt для expat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CMakeLists.txt для expat&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4425</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4425"/>
		<updated>2012-03-22T17:53:11Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: /* Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&lt;br /&gt;
OGR&lt;br /&gt;
GDA&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&amp;lt;br /&amp;gt;&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь про зависимости. Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl. &amp;lt;br /&amp;gt;&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj. &amp;lt;br /&amp;gt;&lt;br /&gt;
GDAL зависит от tiff,jpeg, png. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Коротко о сборке. В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake. &amp;lt;br /&amp;gt;&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первой библиотекой будем компилировать '''expat'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
''Первое'': скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&amp;lt;br /&amp;gt;&lt;br /&gt;
Второе: берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек.&lt;br /&gt;
Третье: скачиваем фаил CMakeLists.txt и помещаем в разархивированную папку expat-2.0.1.&lt;br /&gt;
Далее запускаем CMake и указываем два пути:&lt;br /&gt;
Where is the source code - это то, куда вы разархивировали expat, например C:/projects/expat-2.0.1 и&lt;br /&gt;
Where to build the binaries – это та папка, куда сгенерируются файлы проекта C:/projects/expat-2.0.1/build .&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate. В папке build должен появиться фаил libexpat.sln, открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug и компилируем проект(нажимаем F7). После этого в папке C:/projects/expat-2.0.1/lib/Release должны появиться следующие файлы&lt;br /&gt;
libexpat.dll&lt;br /&gt;
libexpat.exp&lt;br /&gt;
libexpat.lib&lt;br /&gt;
Это мы скомпилировали так называему shared dll. Есть еще Static dll - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&lt;br /&gt;
Далее делаем тоже самое для zlib, качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена.&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/projects/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть фаил C://projects/zlib-1.2.6/zconf.h т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем фаил zlib.sln с помощью Visual Studio, ставим Release,А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся, если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h. После всего этого компилируем проект и получаем 3 файла в папке C:/projects/zlib-1.2.6/Debug/Release. Перенесем их в папку C:/projects/zlib-1.2.6/lib/Release для унификации, эту папку необходимо создать самим.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4364</id>
		<title>Сборка GDAL 1.9.0 с использованием Visual Studio 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_GDAL_1.9.0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_Visual_Studio_2010&amp;diff=4364"/>
		<updated>2012-03-19T21:12:27Z</updated>

		<summary type="html">&lt;p&gt;LEXX413: Новая страница: «{{Статья|Черновик}}  == Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 ==  В мире все разв...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик}}&lt;br /&gt;
&lt;br /&gt;
== Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010 == &lt;br /&gt;
В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010. &lt;br /&gt;
&lt;br /&gt;
===== Оглавление =====&lt;br /&gt;
&lt;br /&gt;
# Краткая информация о структуре библиотеки GDAL&lt;br /&gt;
# Второй раздел&lt;br /&gt;
&lt;br /&gt;
===== 1. Краткая информация о структуре библиотеки GDAL =====&lt;br /&gt;
Библиотека GDAL состоит из 3-х частей:&lt;br /&gt;
CPL&lt;br /&gt;
OGR&lt;br /&gt;
GDA&lt;br /&gt;
&lt;br /&gt;
CPL - это базовые функции работы с файловой системой, строками, xml и т.п.&lt;br /&gt;
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html&lt;br /&gt;
И последний компонент GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html&lt;br /&gt;
&lt;br /&gt;
OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными.&lt;br /&gt;
&lt;br /&gt;
Теперь про зависимости. Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl&lt;br /&gt;
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj.&lt;br /&gt;
GDAL зависит от tiff,jpeg, png&lt;br /&gt;
&lt;br /&gt;
Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице  http://www.gdal.org/formats_list.html  можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.&lt;br /&gt;
&lt;br /&gt;
Коротко о сборке. В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).&lt;br /&gt;
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам gdal. Для простоты предлагаю делать это все с использованием системы сборки cmake.&lt;br /&gt;
Суть в том что для большинства библиотек разработаны скрипты cmake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойтсва и посмотреть, что и как.&lt;br /&gt;
&lt;br /&gt;
Первой библиотекой будем компилировать expat.&lt;br /&gt;
Первое: берем файл отсюда http://sourceforge.net/projects/expat/files/expat/2.0.1/ под названием expat-2.0.1.tar.gz - это последняя стабильная версия на 20.03.2012 и распаковываем в папку где у нас будут храниться все проекты для сборки библиотек.&lt;br /&gt;
Второе: скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.&lt;br /&gt;
Третье: скачиваем фаил CMakeLists.txt и помещаем в разархивированную папку expat-2.0.1.&lt;br /&gt;
Далее запускаем cmake и указываем два пути:&lt;br /&gt;
Where is the source code - это то, куда вы разархивировали expat, например C:/projects/expat-2.0.1 и&lt;br /&gt;
Where to build the binaries – это та папка, куда сгенерируются файлы проекта C:/projects/expat-2.0.1/build .&lt;br /&gt;
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate. В папке build должен появиться фаил libexpat.sln, открываем его с помощью Visual Studio, выставляем сверху &lt;br /&gt;
Тип сборки Release вместо Debug и компилируем проект(нажимаем F7). После этого в папке C:/projects/expat-2.0.1/lib/Release должны появиться следующие файлы&lt;br /&gt;
libexpat.dll&lt;br /&gt;
libexpat.exp&lt;br /&gt;
libexpat.lib&lt;br /&gt;
Это мы скомпилировали так называему shared dll. Есть еще Static dll - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.&lt;br /&gt;
Далее делаем тоже самое для zlib, качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена.&lt;br /&gt;
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: &lt;br /&gt;
CMake Error at CMakeLists.txt:65 (message):&lt;br /&gt;
  You must remove C:/projects/zlib-1.2.6/zconf.h from the&lt;br /&gt;
  source tree.  This file is included with zlib but CMake generates this file&lt;br /&gt;
  for you automatically in the build directory.&lt;br /&gt;
Здесь говорится, что нужно стереть фаил C://projects/zlib-1.2.6/zconf.h т.к. он сгенерил новый. После того как сотрете опять нажимайте Configure, процесс должен закончиться без ошибок, после запускайте Generate. Далее идем в папку build и открываем фаил zlib.sln с помощью Visual Studio, ставим Release,А так же заходим в меню в пункт Построение и выбираем диспетчер конфигураций, после этого снимаем галочки с examles и minizip они нам не понадобятся, если же будут нужны, необходимо в свойствах этих проектов прописать путь к zlib.h. После всего этого компилируем проект и получаем 3 файла в папке C:/projects/zlib-1.2.6/Debug/Release. Перенесем их в папку C:/projects/zlib-1.2.6/lib/Release для унификации, эту папку необходимо создать самим.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Текст статьи &lt;br /&gt;
Пример кода программы/html и т.п.&lt;br /&gt;
2. Второй раздел&lt;br /&gt;
Текст статьи &lt;br /&gt;
Еще один пример текста программы&lt;br /&gt;
	   с сохранением переносов&lt;br /&gt;
Таблица&lt;br /&gt;
Заголовок	Заголовок	Заголовок&lt;br /&gt;
текст	текст	текст&lt;br /&gt;
 &lt;br /&gt;
Ссылки по теме&lt;br /&gt;
•	Ссылка на дополнительный источник информации внутренняя&lt;br /&gt;
•	Ссылка на дополнительный источник информации внешняя&lt;br /&gt;
Дата создания: 04.07.2010 &lt;br /&gt;
Автор(ы): Максим Дубинин&lt;/div&gt;</summary>
		<author><name>LEXX413</name></author>
	</entry>
</feed>