Подготовка среды разработки для компиляции QGIS

Про компиляцию QGIS в сети можно найти целый ряд статей, однако тема подготовительного этапа там освящена, на мой взгляд, слабо.

В одной из самых свежих статей в рунете рекомендуют такую последовательность действий:
Первоначально мы скачиваем и устанавливаем Qt Creator. Качаем с официального сайта. Я использовал скомпилированные библиотеки Qt. (Внимание! Qgis официально не поддерживает Qt 5. Лучше используйте Qt 4): берем отсюда. Ставим Microsoft Windows SDK for Windows 7 and .NET Framework 4 (ISO) (нужен для setupapi).
Кроме того, для отладки в Qt Creator необходим CDB (из пакета MS Debugging Tools). находится тут.

Так же скачиваем и устанавливаем:CmakeFlex и Bison. С официального сайта скачиваем OSGeo4W для своей версии: тут. Запускам его и выбираем: расширенная установка -> установить из интернета и жмем все далее.
К сожалению, при сборке на Windows 10 x64 появляется ряд трудностей.

Во-первых, нельзя сходу установить Microsoft Windows SDK for Windows 7 and .NET Framework 4 на Windows 10 - конфликт версий .NET Framework. Решение следующее:

1. Скачайте и установите MS Visual Studio 2010
2. Скачайте и установите Microsoft Windows SDK for Windows 7 and .NET Framework 4
При установке вылетит уведомление об ошибке:


Открываем реестр Windows и ищем ключи
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Client\Version
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full\Version
В значениях ключа будет установлено 4.6.XXXX - сохраните это значение, его надо вернуть обратно после установки SDK.  Редактирование данных параметров заблокировано. Кликнув правой кнопкой мыши по параметру, перейдите в разрешения и смените владельца.


Замените исходную версию на 4.0.30319. После окончания установки верните исходные значения и разрешения, поменяв владельца обратно на TrustedInstaller.

3. Теперь скачайте и установите Microsoft Visual Studio 2010 Service Pack 1 и Microsoft Visual C++ 2010 Service Pack 1 Compiler Update for the Windows SDK 7.1

После этого Visual Studio 2010 должен, наконец, заработать.

Во-вторых, необходимо задать переменные среды для QtCreator. Для этого создаем .bat-файл с кодом:
ECHO Setting up QGIS DEV ENV 
set PYTHONPATH=C:\OSGeo4W\apps\Python27 
set OSGEO4W_ROOT=C:\OSGeo4W 
call "%OSGEO4W_ROOT%\bin\o4w_env.bat" 
@set QMAKESPEC=win32-msvc2010
@set PATH=%OSGEO4W_ROOT%\bin;%OSGEO4W_ROOT%\apps\qgis-dev\bin;%PATH%
@set INCLUDE=%INCLUDE%;%OSGEO4W_ROOT%\include;%OSGEO4W_ROOT%\apps\qgis-dev\include
@set LIB=%LIB%;%OSGEO4W_ROOT%\lib;%OSGEO4W_ROOT%\apps\qgis-dev\lib
path %OSGEO4W_ROOT%\bin;%SYSTEMROOT%\System32;%SYSTEMROOT%; %SYSTEMROOT%\System32\wbem; C:\Progra~1\Git\bin;C:\Qt\qtcreator-4.1.0\bin;%PATH%
set VS100COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\
call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
start "Qt Creator" /B C:\Qt\qtcreator-4.1.0\bin\qtcreator.exe %*

Обязательно отредактируйте этот код в соответствии с путями в вашей системе.

Компилировал QGIS 2.14.8 на Win10 x64.

Пользуясь случаем, покажу свою конфигурацию CMake, т.к. тоже возникали вопросы.


BISON_EXECUTABLE:FILEPATH=C:/win_flex_bison-latest/win_bison.exe 
EXPAT_INCLUDE_DIR:PATH=C:/OSGeo4W/include
EXPAT_LIBRARY:FILEPATH=C:/OSGeo4W/lib/libexpat.lib
FLEX_EXECUTABLE:FILEPATH=C:/win_flex_bison-latest/win_flex.exe
GDAL_INCLUDE_DIR:PATH=C:/OSGeo4W/include
GDAL_LIBRARY:FILEPATH=C:/OSGeo4W/lib/gdal_i.lib
GEOS_INCLUDE_DIR:PATH=C:/OSGeo4W/include
GEOS_LIBRARY:FILEPATH=C:/OSGeo4W/lib/geos_c.lib
GSLCBLAS_LIB:FILEPATH=C:/OSGeo4W/lib/cblas.lib
GSL_INCLUDE_DIR:PATH=C:/OSGeo4W/include/gsl
GSL_LIB:FILEPATH=C:/OSGeo4W/lib/gsl.lib
POSTGRES_INCLUDE_DIR:PATH=C:/OSGeo4W/include
POSTGRES_LIBRARY:FILEPATH=C:/OSGeo4W/lib/libpq.lib
PROJ_INCLUDE_DIR:PATH=C:/OSGeo4W/include
PROJ_LIBRARY:FILEPATH=C:/OSGeo4W/lib/proj.lib
PYRCC_PROGRAM:FILEPATH=C:/OSGeo4W/bin/pyrcc4.exe
PYUIC_PROGRAM:FILEPATH=C:/OSGeo4W/apps/Python27/Lib/site-packages/PyQt4/uic/pyuic.py
QCA_INCLUDE_DIR:PATH=C:/OSGeo4W/include/qt4/QtCrypto
QCA_LIBRARY:FILEPATH=C:/OSGeo4W/lib/qca.lib
QSCINTILLA_INCLUDE_DIR:PATH=C:/OSGeo4W/include/qt4
QSCINTILLA_LIBRARY:FILEPATH=C:/OSGeo4W/lib/qscintilla2.lib
QSCI_SIP_DIR:PATH=C:/OSGeo4W/include
QWTPOLAR_INCLUDE_DIR:PATH=C:/OSGeo4W/include/qwt
QWTPOLAR_LIBRARY:FILEPATH=C:/OSGeo4W/lib/qwt.lib
QWT_INCLUDE_DIR:PATH=C:/OSGeo4W/include/qwt
QWT_LIBRARY:FILEPATH=C:/OSGeo4W/lib/qwt.lib
SPATIALINDEX_INCLUDE_DIR:PATH=C:/OSGeo4W/include/spatialindex;C:/OSGeo4W64/include
SPATIALINDEX_LIBRARY:FILEPATH=C:/OSGeo4W/lib/spatialindex.lib;C:/OSGeo4W/lib/spatialindex_i.lib
SPATIALITE_INCLUDE_DIR:PATH=C:/OSGeo4W/include/spatialite;C:/OSGeo4W/include
SPATIALITE_LIBRARY:FILEPATH=C:/OSGeo4W/lib/spatialite.lib;C:/OSGeo4W/lib/spatialite_i.lib
SQLITE3_INCLUDE_DIR:PATH=C:/OSGeo4W/include
SQLITE3_LIBRARY:FILEPATH=C:/OSGeo4W/lib/sqlite3_i.lib

Ссылки в помощь: тыцтыц.

Комментарии