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:GnuWin32binbison.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:gnuwin32bin>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:GnuWin32bin;)等 c) 其他问题,诸如应用程序无法正常启动(0xc0150002) 的办法解决参考网上解决; 9. 参考连接 a) 参考编译:http://blog.sina.com.cn/s/blog_62cd89530100t9um.html b) 参考编译:http://www.52php.cn/article/p-pjqbwhtn-bbp.html 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/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |