QGis的源代码下载以及windows平台使用脚本自动化编译

来源:互联网 发布:php进销存管理系统 编辑:程序博客网 时间:2024/04/26 21:46
  • 环境介绍
    • QGis 2.7+ 当前2.8
    • win7
  • 从GitHub下载代码
    • 代码仓库
  • 官方的安装文档
    • windows平台安装稍微看下1、2节,主要看4.1就OK
  • 编译流程总述
    • QGis使用跨平台的工程生成工具cmake来管理所有工程,既然来了解QGsi想必也是多少了解qmake的吧,cmake和qmake类似,但是适用面更广功能更强大。关于cmake,可以参考这里
    • windows平台可以使用自动化安装脚本来安装,位于:根目录\ms-windows\osgeo4w\package-nightly.cmd
  • 下载准备好工具和库,官方文档是滞后的,有些并不需要
    • cmake
      • cmake简介
    • flex&bison
      • 官方文档是用cygwin分别安装,实际直接下载win版本就OK,下载地址,或者搜win_flex_bison
    • 下载OSGEO4W(一个开源的GIS软件,QGis用它下载依赖的库),用它安装其他依赖库
      • 使用起来和cygwin很类似 
    • Qt python不用安装,按照上面的列表下载后,在OsgGeo4W里会有
    • 关于这库的作用,请参考
  • 修改下编译脚本
    • 路径
      • 根目录\ms-windows\osgeo4w\package-nightly.cmd
    • 如果直接双击执行,什么效果都没有,窗口一闪而过
      • 因为这个脚本需要在CMD里执行,带上4个参数。如果有没有,怎么直接exit了
      • 我们改成pause,这样至少可以看到哪里错了

    • build目录已经设置环境变量
      • 可以看到,此脚本需要4个参数,分别为版本号、包号、包名、平台版本
      • BUILDDER为生成的工程目录
      • OSGEO4W_ROOT 为安装的OsGeo4W的目录
        • 添加OSGEO4W_ROOT 环境变量为根目录
        • 将%OSGEO4W_ROOT%\bin;添加到path(编译不需要但是程序运行时需要)
    • 将cmake 以及flex&bison的路径临时加到环境变量中。根据自己的目录修改。
    • 如果是x86版本,下面的路径是不对的
    • 配置需要编译的模块
    • 大致是这样,如果有问题,可以参考脚本执行时的log信息修改
  • 执行脚本

    • 执行完毕会生成vs的工程文件,并且整个工程已经编译后了,也就是可以直接运行的,在VS里将启动项目设置为qgis就OK
  • 其他
    • 如果有一些模块由于下载不完全或者其他问题导致错误,可以暂时屏蔽
      • cmake是递归的,每次在CMakeLists.txt里添加子目录,cmake都会去执行子目录里的CMakeLists.txt
      • 所以例如提示python模块不可用(我自己遇到了),sip.exe调用失败,可以屏蔽python模块
        • 只要修改/src/下的CMakeLists.txt就好
          • #用于注释


0 0