QGis是一个开源的地理信息系统,可运行在Linux,Unix,MacOSX,和Windows平台之上。不少开发者基于各种目的或需求,要自己编译GQis。虽然网络上关于如何在windows上编译QGis的文档也不少,但总不够详细和全面。对于新手来说,想要在windows平台上成功编译却非易事。

1. 下载并安装Flex, Bison, Expat(expat-win32bin-2.0.1.exe)。下载地址如下,安装路径不要有空格

http://gnuwin32.sourceforge.net/downlinks/flex.php
http://gnuwin32.sourceforge.net/downlinks/bison.php

http://sourceforge.net/project/showfiles.php?group_id=10127

 

2. 下载并安装Qt(qt-win-opensource-4.6.2-vs2008.exe)。

http://qt.nokia.com/downloads/windows-cpp-vs2008

安装程序会自动配置好相关参数(随后可以在CMake中看到,相关路径已经设置好)

 

3. 下载并编译Proj.4

http://proj.maptools.org/

3.1 打开vs2008命令行切换到Proj.4的src目录,运行命令nmake -f makefile.vc。

3.2 通过dos命令提取.dll, .lib, .h文件:

set PROJ_DIR=c:/lib/proj
mkdir %PROJ_DIR%/bin
mkdir %PROJ_DIR%/include
mkdir %PROJ_DIR%/lib

copy src/*.dll %PROJ_DIR%/bin
copy src/*.exe %PROJ_DIR%/bin
copy src/*.h %PROJ_DIR%/include
copy src/*.lib %PROJ_DIR%/lib

 

4. 下载并编译GSL

http://david.geldreich.free.fr/downloads/gsl-1.9-windows-sources.zip

直接打开gsl.sln并编译。

 

5. 下载并编译GEOS

http://trac.osgeo.org/geos/

5.1 打开vs2008命令行切换到geos/source目录,运行命令nmake /f makefile.vc。

5.2 通过dos命令提取.dll, .lib, .h文件:

set GEOS_DIR="c:/lib/geos"
mkdir %GEOS_DIR%/include
mkdir %GEOS_DIR%/lib
mkdir %GEOS_DIR%/bin
xcopy /S/Y source/headers/*.h %GEOS_DIR%/include
copy /Y capi/*.h %GEOS_DIR%/include

copy /Y source/*.lib %GEOS_DIR%/lib
copy /Y source/*.dll %GEOS_DIR%/bin

 

6. 下载并编译GDAL(参考自http://blog.csdn.net/GISSTAR/archive/2009/06/05/4245216.aspx

http://trac.osgeo.org/gdal/wiki/DownloadSource

6.1 修改GDAL的nmake.opt中如下几处:

!IFNDEF MSVC_VER
#assume msvc 9.0 #或者在使用nmake命令时直接:nmake -f makefile.vc MSVC_VER=1500
MSVC_VER=1500
!ENDIF
-------------------------------------------
!IFNDEF GDAL_HOME
GDAL_HOME = "C:/gdal-1.6.0"
!ENDIF

BINDIR = $(GDAL_HOME)/bin
PLUGINDIR = $(BINDIR)/gdalplugins
PY_INST_DIR = "C:/Python25/Lib/site-packages"
-------------------------------------------
# Set this to the installed directory containing python.  If you don't
# have python just let it point to a directory that does not exist (as now).

!IFNDEF PYDIR
PYDIR   = "C:/Python25"
!ENDIF

 

 6.2 打开vs2008命令行切换到跟目录,运行命令nmake /f makefile.vc。

 

7. 安装CMake并生成sln文件

http://www.cmake.org/HTML/Download.html

7.1 启动CMake,并设置好相关参数

 

 

 7.2 点击configure按钮,并根据提示修改相关参数。

 7.3 点击Generate按钮生成sln等文件。请注意相关的警告,并修改相关参数,否则或影响随后的编译。本人就因为给GSL_LIB设置的是目录而非具体文件名,导致警告以及随后的编译失败。

 

8 打开上面生成的sln文件并编译。如果有个别工程编译失败,可以卸载的这个工程,并不影响整个程序。

 

9 拷贝相关dll到QGis.exe的同级目录或子目录plugins(XXXplugin.dll, XXXprovider.dll)。

 

10 运行QGis。大功告成。

 

本文所述的编译环境为:windows xp, vs2008。如果你使用的是vs express,可能需要vs配置相关环境,不在本文所述内容之内。

 

BTW:如果你需要调试代码,最好将相关pdb文件拷贝到step 9中对应目录。

 

参考资料:

1. qgis-1.4.0_coding-compilation_guide_en.pdf

2. http://blog.csdn.net/GISSTAR/archive/2009/06/05/4245216.aspx

 

Logo

更多推荐