qgis 编译

一,环境

系统:Windows 7 64位

IDE:VS 2015 Community Update3

qgis版本:2.18.3,下载地址:https://qgis.org/downloads

官方教程:https://htmlpreview.github.io/?https://raw.github.com/qgis/QGIS/master/doc/INSTALL.html

下面是编译过程中填的坑,在此做个记录

官方教程:https://htmlpreview.github.io/?https://raw.github.com/qgis/QGIS/master/doc/INSTALL.html#toc14
教程中指明可以参考 package-nightly.cmd

1. 如果有git或直接通过浏览器下载源码,则不需要在cygwin中安装git

2. 选择包时,如果不确定,可以都下载下来

3. GRASS_PREFIX=D:/OSGeo4W64/apps/grass/grass-7.2.2。注意对应的版本,要使用 / 或 \\。

4. 使用qt5时,需要勾选ENABLE_QT5选项

5. cmake/PyQtMacros.cmake 错误:在源码/cmake 中找到 PyQtMacros.cmake 文件,在文件中PYRCC_PROG_NAME的后缀该.exe为.bat

6. SPATIALINDEX_LIBRARY没找到错误,因为FindSpatialindex.cmake中没有指定-64后缀,cmake中添加spatialindex-64.lib的位置

7. qscintilla库路径改为 qscintilla2-qt5(如果用qt5)

8. QWTPOLAR_LIBRARY 错误,可以在选项中去掉勾选(这个坑没填)

9. 只编译qgis及其依赖项(还有gdal,ogr)

10. 根据教程,编译RelWithDebInfo版本

11. 编译错误:常量中有换行符,语法错误:"break";修改文件编码模式unicode(utf-8有签名)

12. 宏Q_WS_WIN在qt5中已经移出,换用 Q_OS_WIN

13. __imp___vsnprintf 及__iob_func __imp_HUGE 连接proj.lib静态库改为连接proj_i.lib动态库;原因,proj静态库用2010编译,
2010与2015的一些接口发生变化,用动态库可以连接到100.dll

13.1 启动失败,提示could not find or load the Qt platform plugin "windows":将qt库中platforms\qwindows.dll复制到qgis.exe所在目录

14. py code 错误,设置"%OSGEO4W_ROOT%\bin\py3_env.bat"里的环境变量

15. 图标不显示,http://blog.csdn.net/deirjie/article/details/50446033,没有找到qsvg.dll库

16. qt数据库插件dll, copy到对应位置

17.  ERROR 4: Unable to open EPSG support file gcs.csv. Try setting the GDAL_DATA environment  variable to point to the directory containing EPSG csv files.
gdal库中输出的错误,在OSGeo4W64中可以找到gcs.csv文件

posted @ 2017-12-08 15:32  Droplet  阅读(541)  评论(0编辑  收藏  举报