QGISをソースからコンパイルする方法(Windows8.1 32bit環境)

Windows8.1 32bitでQGISをソースからコンパイルする方法です。(windows7でも多分おなじ方法でいけると思います。)

基本的な手順は、以下のサイトの通りなのですが、情報が古いみたいで、この通りにやっても上手くいきません。試行錯誤の末、なんとかコンパイル&起動できるようになったので、そのメモです。
https://github.com/qgis/Quantum-GIS/blob/master/INSTALL

1.

  • ここからVisual C++ Express Edition 2008をとってきてインストールする。

http://download.microsoft.com/download/d/c/3/dc3439e7-5533-4f4c-9ba0-8577685b6e7e/vcsetup.exe

http://download.cnet.com/Windows-Server-2003-R2-Platform-SDK-ISO-Download/3000-10248_4-10731094.html

2.

これらをインストール。

CMake http://www.cmake.org/files/v2.8/cmake-2.8.12.2-win32-x86.exe
Flex http://gnuwin32.sourceforge.net/downlinks/flex.php
Bison http://gnuwin32.sourceforge.net/downlinks/bison.php
GIT https://github.com/msysgit/msysgit/releases/download/Git-1.9.2-preview20140411/Git-1.9.2-preview20140411.exe
OSGeo4W http://download.osgeo.org/osgeo4w/osgeo4w-setup.exe
txt2tags http://txt2tags.org/txt2tags.py

    • pythonプログラムを保存してC:\OSGeo4W\bin に入れておく。
    • cmake 2.8.4だとダメでした。
    • gitも最新にしておきました。
    • txt2tagsも一応いれておきました。(後のcmakeの作業でnot_foundって言われるので)

OSGeo4Wでは、これらをインスト−ル

  • expat
  • fcgi
  • gdal
  • grass
  • gsl-devel
  • iconv
  • pyqt4
  • qt4-devel
  • qwt5-devel-qt4
  • sip
  • spatialite
  • libspatialindex-devel
  • python-qscintilla
  • gdal-python
  • pyspacialite
  • psycopg2
    • gdal-python,pyspacialite,psycopg2 これらを追加。入れないと起動時にpluginエラーが出ます。

3.

空白パス名がコンパイル時によろしくないので、
C:\Program Files\GnuWin32 をこちらに移動。 C:\GnuWin32 

C:\GnuWin32\includeの中身をここにコピー C:\Program Files\Microsoft Visual Studio 9.0\VC\include 

4.

これをbuild_init.bat という名前で c:\gitproject\の中に保存 (gitprojectでなくてもいいです)

@echo off
path %SYSTEMROOT%\system32;%SYSTEMROOT%;%SYSTEMROOT%\System32\Wbem;
set PYTHONPATH=
  
set VS90COMNTOOLS=%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\Tools\
call "%PROGRAMFILES%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86
  
set INCLUDE=%INCLUDE%;%PROGRAMFILES%\Microsoft Platform SDK for Windows Server 2003 R2\include
set LIB=%LIB%;%PROGRAMFILES%\Microsoft Platform SDK for Windows Server 2003 R2\lib
  
set OSGEO4W_ROOT=C:\OSGeo4W
call "%OSGEO4W_ROOT%\bin\o4w_env.bat"
  
@set GRASS_PREFIX=c:/OSGeo4W/apps/grass/grass-6.4.3
@set INCLUDE=%INCLUDE%;%OSGEO4W_ROOT%\include
@set LIB=%LIB%;%OSGEO4W_ROOT%\lib;%OSGEO4W_ROOT%\lib
set PATH=%PATH%;%PROGRAMFILES%\CMake 2.8\bin;c:\GnuWin32\bin;%OSGEO4W_ROOT%\bin;%PROGRAMFILES%\Git\bin
@cmd
    • GRASSのバージョンを変更
    • 最終行でcmakeとかGnuWin32(bison,flex)とかgitのパスを通す。

5.

コマンドプロンプトを起動して、C:\gitproject\のなかで以下のコマンドを打ってQGISのソースを取ってくる。

git clone git://github.com/qgis/Quantum-GIS.git
  • C:\gitproject\build フォルダを作る

6.

コマンドプロンプトで以下のコマンドを打ってcmakeを起動させる

cmake-gui

Where is the source code: に C:/gitproject/QGIS
Whers to build the binaries: に C:/gitproject/build
を指定して、Configureボタンを押すと、選択画面がでるのでVisual Studio 9 C++ 2008を選ぶ。
txt2tagsのパスが分からないとエラーが出るので、C:\OSGeo4W\bin\txt2tags-2.6.py を選択する。
(エラーは、別々にでるので、Configureボタンをその都度押す)

  • もう一度Configureボタンを押してエラーが出なくなったら続けてGenerateボタンを押す。
    • 8.の作業を省略しようとCMAKE_INSTALL_PREFIXを変更したら、なぜか上手くいかなかったので、これはそのまま。

7.

コマンドプロンプト(管理者)でC:\gitproject\build に入って以下のコマンドを打ってコンパイル&インストール

    • windows8.1の左下のアイコンを右クリックするとコマンドプロンプト(管理者)を起動できます。
    • あらかじめC:\Program Files\qgis2.3.0 フォルダを作っておく必要があるかも(?)
cmake --build . --config RelWithDebInfo
cmake --build . --target install --config RelWithDebInfo
  • コンパイルでエラーが残ってるけど、とりあえず無視。(動作には関係ない部分かも??)

8

C:\Program Files\qgis2.3.0フォルダをC:\OSGeo4W\apps\qgis2.3.0に移動させます。

これを、qgis-mybuild.batで保存します。

@echo off

SET OSGEO4W_ROOT=C:\OSGeo4W
call "%OSGEO4W_ROOT%"\bin\o4w_env.bat
call "%OSGEO4W_ROOT%"\apps\grass\grass-6.4.3\etc\env.bat
@echo off
path %PATH%;"%OSGEO4W_ROOT%\apps\qgis2.3.0\bin";%OSGEO4W_ROOT%\apps\grass\grass-6.4.3\lib
start "QGIS" /B "%OSGEO4W_ROOT%\apps\qgis2.3.0\bin\qgis.exe" %*

9

qgis-mybuild.batをダブルクリックして、起動すればできあがり。

コメント

  • というわけで、無事コンパイルできたので、QGIS2.4の翻訳作業にとりかかります。(別にコンパイルしなくても翻訳作業はできますが、テスト前だと部屋の掃除がはかどるという、そんな感じです。)