1. 下载并安装所需的第三方组件 1.1 Flex 和 Bison Flex 和 Bison 是安装 Grass 和 QGIS 必须的程序。 * 注意:这两个工具在安装时,安装目录不要有空格,否则在编译 QGIS 时找不到这两个文件。 1.2 PostSQL (略) 1.3 QT 的安装 可以直接选择默认安装。 1.
1. 下载并安装所需的第三方组件
1.1 Flex 和 Bison
Flex 和 Bison 是安装 Grass 和 QGIS 必须的程序。
* 注意:这两个工具在安装时,安装目录不要有空格,否则在编译 QGIS 时找不到这两个文件。
1.2 PostSQL (略)
1.3 QT 的安装
可以直接选择默认安装。
1.4 Proj.4
( 1 )从 Proj.4 官方网站上下载最新的版本,解压缩到某个文件夹。
( 2 )使用 Visual Studio 2008 command ,定位到 Proj.4 的加压缩文件下,输入下面的命令进行编译: nmake –f makefile.vc MSVC_VER=1500 ( 对于 MSVC_VER 值的设定,可以参考 nmake.opt 文件里的注释 )
( 3 )输入以下命令,将生成 Proj.4 的 bin, include 和 lib 目录,并将相应的文件放到各个目录下:
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
copysrc/*.lib %PROJ_DIR%/lib
1.5 GSL
获得 GSL 源码,直接编译 gsl.sln 文件(如果是较早版本,直接用 VS2008 打开即可)
1.6 GEOS
( 1 )获得最新版本的 GEOS ,(本文使用的是 geos-3.1.0 ),使用 Visual Studio 2008 command ,定位到 Proj.4 的加压缩文件下,输入下面的命令进行编译:
nmake –f makefile.vc MSVC_VER=1500
* 注意:对于 MSVC_VER 值的设定,可以参考 nmake.opt 文件里的注释
(2) GEOS 的 bin, include 和 lib 目录,及其相应文件的生成参考 Proj.4 的生成方法
1.7 GDAL 的编译
参考 CSDN 上 blog 的说明。
1.8 PostGIS( 略未支持 )
1.9 Expat
下载 expat-win32bin-2.0.1.exe (或更高版本),安装。 * 注意,安装目录名也不应该包含空格。
1.10 CMake
下载最新版本的 CMake-win32.exe ,安装。
2. 用 CMake-gui 编译 QGIS 程序。
设置 Source Code 为 QGIS 源文件的路径,已经要生成编译文件的路径;然后,设置以上所需的工具的 LIB 和 INCLUDE 路径,点击 Configuration 后,点击 Generate ,生成 qgis1.0.2.sln 文件 , 编译该文件,即可获得 .lib 和 .dll 文件。参考 QGIS1.0.2 安装版的安装后目录信息,制作我们自己的 bin, include, lib 和 plugins 目录(方法是,拷贝 QGIS1.0.2 安装版 include 文件夹生成 include 目录;拷贝我们生成的 qgis_core.dll 、 qgis_gui.dll 构建 Bin 目录 — 可以将 sqlite3.dll, gdal16.dll 一并拷到 Bin 目录下;到编译生成的 src 目录下,选择 ] 文件搜索 ] 工具,输入 ]*.dll] , 选出生成 providers 和 Plugins ,拷贝到 plugins 目录下)。
注意事项:
( 1 )根据情况选择是否允许以下工具一起编译:
WITH_BINDINGS-------- Python
WITH_GRASS-------------Grass
WITH_INTERNAL_SQLITE3----- 是否使用 QGIS 源文件提供的 Sqlite3 ,在此要取消该项的选择,设置自己下载的最新版本的 Sqlite3 源文件,编译生成 .dll 和 .lib 文件。否则编译生成的 QGIS 的 lib 库对 Sqlite3 的使用会报错(可能是 QGIS 源文件的 Sqlite3 有问题)。
WITH_POSTGRESQL---Postgresql
(2)GDAL 的 LIBRARY 要使用 gdal_i.lib 文件,这是一个动态链接库文件(本人也不太懂),
Proj 的 LIBRARY 也应该如此。我在编译时使用的是 proj.lib 文件,目前还没遇到什么错误,等下次重新编译时我尝试以下。
3. QGIS 的使用例子
在使用 QGIS 时,要注意加上
#define CORE_EXPROT
#define GUI_EXPROT
查看更多关于在MSVisualStudio2008下编译QGIS1.0.2的详细内容...