- 环境介绍
- 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
- 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就好
- #用于注释
时间: 2024-11-13 07:55:01