Как собрать GDAL самому в Windows.
При написании этой статьи были использованы рекомендации со страницы компиляции GDAL (с официального сайта GDAL).
1. Скачиваем Visual C++ 9.0 Express Edition
Устанавливаем в папку: C:\Program Files\Microsoft Visual Studio 9.0\VC\
2. Скачиваем и устанавливаем Windows SDK
Установка в папку: c:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\
Веб-инсталлятор SDK
Полная версия (ISO, 409 Mb)
Более новую версию SDK - Windows SDK for Windows Server 2008 and .NET Framework 3.5, устанавливать не рекомендуется. Дальнейшее описание касается только Windows Server® 2003 R2 Platform SDK
3. Добавим пути в настройки VCE.
Tools\Options\Projects and Solutions\VC++ Directories
Executable files:
c:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin

Include files:
c:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include
c:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\atl
c:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\mfc
Library files:
c:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\
4. Скачайте исходный код GDAL версии 1.6.1
http://download.osgeo.org/gdal/gdal161.zip
или более свежий выпуск
http://trac.osgeo.org/gdal/wiki/DownloadSource
распакуйте его.
5. Найдите файл makegdal80.vcproj в каталоге куда был скачан и распакован исходный код.
6. Откройте этот файл в среде VCE (File\Open\Project/Solution), появится сообщение о том, что файл создан в предыдущей версии VC, нужно импортировать его в текущую.
7. После импорта проекта, попробуйте щелкнуть правой кнопкой мыши на название проекта makegdal и выберите: Build
Если появится следующая ошибка, перейдите к пункту 8.
1>------ Build started: Project: makegdal, Configuration: Debug Win32 ------ 1>Performing Makefile project actions 1>Project : error PRJ0003 : Error spawning 'cmd.exe'. 1>Build log was saved at "file://c:\temp\gdal-compile\gdal-1.5.1\Debug\BuildLog.htm" 1>makegdal - 1 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Если ошибка такая, к пункту 9:
1>LINK : fatal error LNK1104: cannot open file 'atlthunk.lib' 1>NMAKE : fatal error U1077: 'link' : return code '0x450' 1>Stop. 1>Project : error PRJ0019: A tool returned an error code from "Performing Makefile project actions" 1>Build log was saved at "file://c:\temp\gdal-compile\gdal-1.5.3\Debug\BuildLog.htm" 1>makegdal - 3 error(s), 1 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
8. Откройте VCE, Tools\Options\Projects and Solutions\VC++ Directories
Убедитесь, что одно из значений для Executable Files указывает на папку Windows\System32, если оно не указывается, необходимо его добавить.

9. Отредактируйте atlwin.h (c:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\atl\atlwin.h)
Строка 1725
добавить int i; после
BOOL SetChainEntry(DWORD dwChainID, CMessageMap* pObject, DWORD dwMsgMapID = 0)
{
// first search for an existing entry
Должно получиться:
BOOL SetChainEntry(DWORD dwChainID, CMessageMap* pObject, DWORD dwMsgMapID = 0)
{
int i;
// first search for an existing entry
10. Отредактируйте atlbase.h (c:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\atl\atlbase.h)
Закомментируйте строки 287-293
//PVOID __stdcall __AllocStdCallThunk(VOID); //VOID __stdcall __FreeStdCallThunk(PVOID); //#define AllocStdCallThunk() __AllocStdCallThunk() //#define FreeStdCallThunk(p) __FreeStdCallThunk(p) //#pragma comment(lib, "atlthunk.lib")
Добавьте новый макрос сразу после закоментированных строк:
/* NEW MACROS */
#define AllocStdCallThunk() HeapAlloc(GetProcessHeap(),0,sizeof(_stdcallthunk))
#define FreeStdCallThunk(p) HeapFree(GetProcessHeap(), 0, p)
11. Снова запустите процесс компиляции (Build)
Операция должна выполниться успешно, с примерно следующим выводом:
c:\DevTools\gdal\gdal-1.6.1\ogr\ogrsf_frmts>copy pgeo\drv_*.html "C:\warmerda\bld"\html pgeo\drv_pgeo.html Скопировано файлов: 1. cd ..\.. Build log was saved at "file://c:\DevTools\gdal\gdal-1.6.1\Debug\BuildLog.htm" makegdal - 0 error(s), 3125 warning(s) ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
12. Для выполнения, необходимо переместить gdal16.dll из корневой папки проекта с исходным кодом GDAL в папку apps, в которой после компиляции должны были появиться исполняемые файлы.
13. Проверить инструменты можно запустив и папки apps один из них, например так:
gdalinfo --version
Обсудить в форуме Комментариев 0
Последнее обновление: September 11 2009
Открытые настольные ГИС: обзор текущей ситуации 
Матрица ошибок и расчет показателей точности тематических карт 
Географическая привязка данных в QGIS: пример привязки топокарты по сетке 
© GIS-Lab и авторы, 2002-2009. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна.
Большой ассортимент ножей, набор керамических ножей, оперативная доставка.