QGIS1.7.1版本编译

QGIS1.7.1编译

(仅将此文献给喜欢调试QGIS的Giser)

编译qgis开始

参考文档:{

http://download.osgeo.org/qgis/doc/manual/qgis-1.6.0_coding-compilation_guide_en.pdf }

参考网址:{ http://www.qgis.org/wiki/Building_QGIS_from_Source }

编译环境:windowsxp,vs2008, Qt4.5.0

1.       下载软件;

下载Gnuw:安装到C:\GnuWin32

{

 Microsoft Windows Server® 2003 R2 Platform SDK:http://download.microsoft.com/download/f/a/d/fad9efde-8627-4e7a-8812-c351ba099151/PSDK-x86.exe

 

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

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

 

注意:拷贝:GnuWin32/include/unistd.h到vs2008安装目录下../VC/include

}

下载安装OSGEO4W,安装到C:\OSGeo4W

{

OSGeo4W:http://download.osgeo.org/osgeo4w/osgeo4w-setup.exe

           选择安装下面lib:

expat

fcgi

gdal17

grass

gsl-devel

iconv

pyqt4

qt4-devel

qwt5-devel-qt4

sip

}

下载安装Cmake;

{

CMake :http://www.cmake.org/files/v2.8/cmake-2.8.2-win32-x86.exe

}

下载安装Qt(qt-win-opensource-4.5.0-vs2008.exe)

2.       下载qgis代码;qgis1.6.0和qgis1.7.1已经编译通过:

http://qgis.org/downloads/qgis-1.6.0.tar.bz2

http://qgis.org/downloads/qgis-1.7.1.tar.bz2

3.       指向代码;如下设置

在源码文件夹建立Build文件夹

postgresql库文件指定osgeo4w中的lib下的libpq.lib文件

 

4.       处理一下:qgis1.6.0版本需要处理;

使用bison.exe 生成qgssearchstringparser.cpp 文件时会出错误,错误信息如下:

C:\GnuWin32\bin\bison.exe -oD:/QGIS1.6.0/Build/src/core/qgssearchstringparser.cpp -d -v -t D:/QGIS1.6.0/src/core/qgssearchstringparser.yy

if errorlevel 1 goto VCReportError

goto VCEnd

:VCReportError

echo Project : error PRJ0019: A tool returned an error code from "Generating qgssearchstringparser.cpp"

exit 1

 

因此,必须手工生成该文件,在dos环境下,进入bison.exe文件所在的目录,执行下述命令:

c:\>cd GnuWin32

c:\gnuwin32>cd bin

c:\gnuwin32\bin>bison.exe -o D:/QGIS1.6.0/Build/src/core/qgssearchstringparser.cpp -d -v -t D:/QGIS1.6.0/src/core/qgssearchstringparser.yy

这里D:/QGIS1.6.0指的是ggis源码所在的目录,D:/QGIS1.6.0/Build指的是cmake生成的vc工程文件所在的目录,上述命令表示用qgssearchstringparser.yy在vc工程文件所在的目录下生成qgssearchstringparser.cpp 文件。

 

对于qgis_core工程,需要手动生成qgssearchstringparser.cpp,方法如下

C:/GnuWin32/bin/bison.exe -oD:/QGIS1.6.0/Build/src/core/qgssearchstringparser.cpp -d -v -t D:/QGIS1.6.0/src/core/qgssearchstringparser.yy

对于qgis_analysis工程,需要手动生成qgsrastercalcparser.cpp,方法如下

C:/GnuWin32/bin/bison.exe -p raster -oD:/QGIS1.6.0/Build/src/analysis/qgsrastercalcparser.cpp -d -v -t D:/QGIS1.6.0/src/analysis/raster/qgsrastercalcparser.yy

 

         编译qgis1.7.1版本不需要本步骤处理。

5.       启动编译,成功运行!只需要按下2个F7即可。(经过测试,qgis1.7.1版本为稳定版本,源码保重包含了CODING.pdf和INSTALL.pdf文件,对于qgis二次开发,可谓是绝佳宝典)

建议使用debug编译lib库,方便后面案例应用调试;(我曾经使用RelWithDebInfo格式的lib、dll出现了一个错误QWidget: Must construct a QApplication before a QPaintDevice,设定了debug编译,拷贝相应库到对应文件夹,问题解决)

6.       测试案例,参考链接6,里面包含设置与调试运行;

7.       Enjoy it!

8.       可能出现的问题:

a)         Python问题,建议选择osgeo4w中的python,不推荐使用arcgis等软件提供的python;

b)         Qt安装之后,设置环境变量QTDIR并指向相应位置、并将其添加到path中(%QTDIR%;%QTDIR%\bin),添加GnuWin32到path中(C:\GnuWin32\bin;)等

c)         其他问题,诸如应用程序无法正常启动(0xc0150002) 的办法解决参考网上解决;  

9.       参考连接

a)         参考编译:http://blog.sina.com.cn/s/blog_62cd89530100t9um.html

b)         参考编译:http://blog.csdn.net/ryanzll/article/details/6217142

c)         参考编译:http://www.cnblogs.com/ajeyone/archive/2011/05/12/2044680.html

d)         编译问题:http://lzchenheng.blog.163.com/blog/static/838335362011274940450/

e)         示范程序:http://download.csdn.net/detail/lzchenheng/3356813

f)          QGIS二次开发介绍:

 http://lzchenheng.blog.163.com/blog/static/838335362011214103147804/

 

 

 

你可能感兴趣的:(QGIS1.7.1版本编译)