栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

QGIS—windows编译

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

QGIS—windows编译

  • 偷懒,可以直接下载笔者配置好的解决方案OSGeo4W64.rar,qgis版本final-3_16_12,按照start.txt的顺序在cmd窗口运行vs2015打开解决方案即可编译:
    https://pan.baidu.com/s/1_4CgEGbz7MloD2mCsh1OIQ
    提取码:rixi

  • 想自己动手就继续往下看
    代码地址:https://github.com/qgis/QGIS.git
    编译版本:tags/final-3_16_12 到 tags/final-3_18_0
    说明:本文python模块没有编译通过,由于测试时最新库地址下载总是断,不管是否翻墙都无法下载完整。所以折中采用了国内源。有些小问题不影响使用。

1.所需环境
  • 创建目录E:OSGeo4W64
  • 本次测试安装VS2015update3
    http://download.microsoft.com/download/5/d/1/5d1ec81e-bc59-448f-9ab6-27636d5cc18a/vs2015.3.com_chs.iso
  • CMake
    https://cmake.org/files/v3.12/cmake-3.12.3-win64-x64.msi
  • cywin64
    https://cygwin.com/setup-x86_64.exe
    通过cywin64安装GNU flex, GNU bison and GIT,安装后如下图
    cywin64安装bin目录需要写到path,否则后续缺少flex和bison,如果不加path,需要将flex和bison的exe以及依赖库拷贝到E:OSGeo4W64,本次编译采用了后一种做法。
  • OSGeo4W库
    这个理论上可以直接下载笔者提供的下载好的库,下载地址:如果选择这种方式,下面的步骤可以忽略。
    这里下载过程也说一下,下载安装文件https://download.osgeo.org/osgeo4w/osgeo4w-setup-v2.exe 这个库安装采用在线安装方式,(如下图四),最新的库地址在默认网址里,但是不管是否翻墙都无法下载完整,因此采用add添加国内源,库比较老,只能编译比较老的QGIS版本,本次测试3.16.12-3.18.0都可以,但依然会有一个错误,由于不关注python模块,所以就忽略了这个错误。下载选择目录E:OSGeo4W64,安装时将msinttypes skip掉(如下图三),否则和vs头文件冲突编译不过,其他库选择了全部安装,因为本来国内这个库比较老,害怕少库。 下载完后,vs编译还是没有问题,但是运行析构崩溃(如下图二),因为这个地址的spatialindex的include、lib与dll版本不一致,通过查找本地下载目录的spatialindex的库,将同一个版本的include、lib和dll拷贝到对应位置,E:OSGeo4W64bin、E:OSGeo4W64includespatialindex、E:OSGeo4W64lib
    图二
    图三

图四

  • ninja
    https://github.com/ninja-build/ninja/releases/download/v1.7.2/ninja-win.zip
    解压后拷贝到E:OSGeo4W64bin目录下。
2.代码生成和编译
  • 修改E:OSGeo4W64QGISms-windowsosgeo4wmsvc-env.bat,如果vs默认安装,vs路径不用修改,修改cywin和cmake路径地址为本地安装路径。
  • 下载上述qgis版本代码,本次测试下载路径为QGIS162
  • 新建文件OSGeo4W-dev.bat,写入如下内容,启动cmd窗口运行。
@echo off
call E:OSGeo4W64QGIS162ms-windowsosgeo4wmsvc-env.bat x86_64
@cmd
  • 执行configonly.bat,生成解决方案。
cd E:OSGeo4W64QGIS162ms-windowsosgeo4w
configonly.bat
  • 在同一个cmd窗口确保如下文件都执行了之后,以后打开解决方案都要如此,devenv命令启动vs2015,打开解决方案文件E:OSGeo4W64QGIS162ms-windowsosgeo4wbuild-qgis-test-x86_64qgis.sln,编译,python的两个项目编译报”C1001 编译器内部错误”,不用就没管。
E:OSGeo4W64OSGeo4W-dev.bat
E:OSGeo4W64bingdal-dev-env.bat
devenv
  • 运行qgis,ALL_BUILD工程邮件属性–调试-> 命令-> C:OSGeo4W64QGISms-windowsosgeo4wbuild-qgis-test-x86_64outputbinRelWithDebInfoqgis.exe如下图
  • F5启动,项目过期编译点否,提示python模块加载失败如下图,关闭即可

到此结束,运行效果如下所示,随便打开一个shp

参考文章:
https://github.com/qgis/QGIS/blob/final-3_16_12/INSTALL.md
https://blog.csdn.net/xiaozy12/article/details/108843224

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/503559.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号