Сборка GDAL 1.9.0 с использованием Visual Studio 2010: различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Строка 41: Строка 41:
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.
''Where to build the binaries'' – это та папка, куда сгенерируются файлы проекта ''C:/project/expat-2.0.1/build''.
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).
Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).
[[Файл:Рис. 2.JPG|center|Рис. 1]]
[[Файл:Рис. 2.JPG|center|Рис. 2]]
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху  
В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху  
Тип сборки Release вместо Debug и компилируем проект(нажимаем F7). После этого в папке C:/projects/expat-2.0.1/lib/Release должны появиться следующие файлы
Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7).  
libexpat.dll
[[Файл:Рис. 3.JPG|center|Рис. 3]]
После этого в папке ''C:/projects/expat-2.0.1/lib/Release'' (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы
''libexpat.dll
libexpat.exp
libexpat.exp
libexpat.lib
libexpat.lib''
Это мы скомпилировали так называему shared dll. Есть еще Static dll - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.
 
Далее делаем тоже самое для zlib, качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена.
Это мы скомпилировали так называему '''shared dll'''. Есть еще '''Static dll''' - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.<br />
 
'''Далее делаем тоже самое для zlib''', качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена.
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение:  
При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение:  
CMake Error at CMakeLists.txt:65 (message):
CMake Error at CMakeLists.txt:65 (message):
   You must remove C:/projects/zlib-1.2.6/zconf.h from the
   You must remove C:/project/zlib-1.2.6/zconf.h from the
   source tree.  This file is included with zlib but CMake generates this file
   source tree.  This file is included with zlib but CMake generates this file
   for you automatically in the build directory.
   for you automatically in the build directory.
Здесь говорится, что нужно стереть фаил 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 для унификации, эту папку необходимо создать самим.
Здесь говорится, что нужно стереть файл ''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 для унификации, эту папку необходимо создать самим.





Версия от 19:28, 22 марта 2012

Эта страница является черновиком статьи.


Сборка библиотеки GDAL 1.9.0 с использованием Visual Studio 2010

В мире все развивается и это касается так же программного обеспечения, а именно выходят новые версии библиотек и новые версии программ для разработки. Поэтому в данной статье речь пойдет о сборке библиотеки GDAL 1.9.0 на Visual Studio 2010.

Оглавление
  1. Краткая информация о структуре библиотеки GDAL
  2. Второй раздел
1. Краткая информация о структуре библиотеки GDAL

Библиотека GDAL состоит из 3-х частей: CPL OGR GDA

CPL - это базовые функции работы с файловой системой, строками, xml и т.п.
OGR это работа с геопространственными векторными форматами. Список поддерживаемых форматов можно посмотреть здесь: http://www.gdal.org/ogr/ogr_formats.html
GDAL - это работа с растровыми форматами. Список здесь: http://www.gdal.org/formats_list.html

OGR и GDAL обеспечивают не только поддержку форматов, но и операции работы с векторами и растрами. Т.е. GDAL позволяет не только считывать но и манипулировать с геоданными.

Теперь про зависимости. Компонент CPL (исходники лежат в подпапке port) зависит от библиотек: zlib, curl.
OGR зависит от многих библиотек, но базовый набор от expat, geos и proj.
GDAL зависит от tiff,jpeg, png.

Тут надо понимать что такое драйвер. Это отдельный плагин обеспечивающий поддержку формата из списка. В таблице http://www.gdal.org/formats_list.html можно посмотреть что от чего зависит. Иногда драйвер не зависит ни от чего и компилировать его просто. Иногда нужна еще отдельная библиотека или набор библиотек.

Коротко о сборке. В зависимости от необходимости можно собрать GDAL именно в той конфигурации, что нужна (с определенным перечнем драйверов).
Собирать будем пошагово: вначале все зависимые библиотеки, затем сам GDAL. Для простоты предлагаю делать это все с использованием системы сборки CMake.
Суть в том что для большинства библиотек разработаны скрипты CMake и сборка становится однотипной и простой. Заодно на выходе будут привычные проекты Visual Studio, где можно залезть в свойсnва и посмотреть, что и как.

Первой библиотекой будем компилировать expat.
Первое: скачиваем систему сборки cmake http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe и ставим ее.
Второе: берем файл отсюда 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(для данного примера).

Рис. 1

Третье: скачиваем фаил CMakeLists.txt Файл:CMakeLists.zip и помещаем в разархивированную папку expat-2.0.1.

Далее запускаем CMake и указываем два пути: Where is the source code - это то, куда вы разархивировали expat, например C:/project/expat-2.0.1 и Where to build the binaries – это та папка, куда сгенерируются файлы проекта C:/project/expat-2.0.1/build. Нажимаем кнопку Configure и выбираем версию Visual Studio(в нашем случае Visual Studio 2010), если выдаст ошибку, нажимаем еще раз. После нажимаем кнопку Generate (см. Рис. 2).

Рис. 2

В папке build должен появиться фаил libexpat.sln. Открываем его с помощью Visual Studio, выставляем сверху Тип сборки Release вместо Debug (см Рис. 3) и компилируем проект(нажимаем F7).

Рис. 3

После этого в папке C:/projects/expat-2.0.1/lib/Release (далее все скомпилированные библиотеки будем класть в схожие папки lib/Release) должны появиться следующие файлы libexpat.dll libexpat.exp libexpat.lib

Это мы скомпилировали так называему shared dll. Есть еще Static dll - тогда на выходе только libexpat.lib. Потом libexpat.dll надо будет скопировать в папку с вашей программой. Туда надо будет кидать все зависимые библиотеки.

Далее делаем тоже самое для zlib, качаем ее отсюда http://zlib.net/zlib126.zip CmakeLists.txt в архив уже включена. При нажатии на кнопку Configure в самом конце cmake напишет следующее сообщение: CMake Error at CMakeLists.txt:65 (message):

 You must remove C:/project/zlib-1.2.6/zconf.h from the
 source tree.  This file is included with zlib but CMake generates this file
 for you automatically in the build directory.

Здесь говорится, что нужно стереть файл 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 для унификации, эту папку необходимо создать самим.






Текст статьи Пример кода программы/html и т.п. 2. Второй раздел Текст статьи Еще один пример текста программы с сохранением переносов Таблица Заголовок Заголовок Заголовок текст текст текст

Ссылки по теме • Ссылка на дополнительный источник информации внутренняя • Ссылка на дополнительный источник информации внешняя Дата создания: 04.07.2010 Автор(ы): Максим Дубинин