qgis 编译运行(win10 + vs2015)

转载:https://www.jianshu.com/p/ba087f18400b

qgis 编译运行(win10 + vs2015)

dc的梦呓关注

2019.02.19 00:17:14字数 855阅读 3,732

1、环境

win10 操作系统;
win10 sdk

2、工具准备

IDE:vs2015,可用社区免费版(community)

cmake:跨平台编译配置工具,点此下载

cygwin:在 windows 系统上提供的类 unix 环境,用于下载所需要的包。64位下载

OSGeo4W:用于 windows 系统里一系列的开源 gis 的发布,64位下载

其中,cygwin,需安装以下的包:

  • bison
  • flex
  • git

OSGeo4W,需安装:

  • qgis-dev-deps
    qgis-dev-deps 中,已包含了 qgis 所需要的一系列依赖。同时确保不要安装 msinttypes 包,因其 stdint.h 和 vs 自有的会冲突。

3、安装

vs 和 cmake 比较简单。

cygwin 也一步步安装,直至选择包的界面,分别搜索需以上的包,若未安装,会显示 skip,点击切换版本即可;下图为已安装,显示为 keep。

image.png

OSGeo4W 选择 Advanced Install,安装路径假设默认为 C:\OSGeo4W64,之后一步步安装,直至选择包界面,输入 qgis-dev-deps,同样,若未安装,会显示为 skip,点击切换版本即可,下图为已安装,显示为 keep。

image.png

4、配置

  • 环境
    以下保存为批处理文件 C:\OSGeo4W64\qgis-dev.bat,其中具体的路径,替换成自己机子环境对应的路径,其中的路径包括 vs 、window sdk、OSGeo、cygwin64等。
@echo off
set VS140COMNTOOLS = D:\Go\Program\Microsoft Visual Studio 14.0
call "D:\Go\Program\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64
set INCLUDE=%INCLUDE%;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include
set LIB=%LIB%;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib
set OSGEO4W_ROOT=C:\OSGeo4W64
call "%OSGEO4W_ROOT%\bin\o4w_env.bat"
call "%OSGEO4W_ROOT%\bin\py3_env.bat"
call "%OSGEO4W_ROOT%\bin\qt5_env.bat"
set O4W_ROOT=%OSGEO4W_ROOT:\=/%
set LIB_DIR=%O4W_ROOT%
path %path%;D:\Go\Program\Microsoft Visual Studio 14.0\VC\bin
path %PATH%;D:\Go\Program\CMake\bin;E:\ProgramFiles\cygwin64\bin
@set GRASS_PREFIX=C:\OSGeo4W64\apps/grass/grass-7.6.0
@set INCLUDE=%INCLUDE%;%OSGEO4W_ROOT%\include
@set LIB=%LIB%;%OSGEO4W_ROOT%\lib;%OSGEO4W_ROOT%\lib
set LIB=%LIB%;%OSGEO4W_ROOT%\apps\Qt5\lib;%OSGEO4W_ROOT%\lib
set INCLUDE=%INCLUDE%;%OSGEO4W_ROOT%\apps\Qt5\include;%OSGEO4W_ROOT%\include
@cmd
  • cmake
    双击以上保存的 qgis-dev.bat,输入 cmake-gui,会弹出 cmake 的配置界面,写好 qgis 源码目录及build 目录,

     

    image.png

     

    点击 configure,在弹出的界面选择与自己机子匹配的 vs 版本,过程中若有错,搜索一下很容易解决。

     

    image.png


    成功后点击 generate,完成后点击 Open Project,会调用 vs 打开项目文件(注:此时 vs 的环境变量继承命令框)。

5、 编译

打开后,项目非常多,无论是编译、还是浏览,都非常慢。我们只需核心的几个库,其它的都移除。先把主程序运行起来,其它的插件若有需要再添加。

sln.png

  • qgis:QGIS可执行程序
  • qgis_native:依赖项
  • libdxfrw:依赖项
  • qgis_app:
  • qgis_analysis:依赖项
  • qgis_core:依赖项,QGIS核心库
  • qgis_gui:依赖项,QGIS核心库
  • ui:QGIS所有的界面
  • gdalprovider:读取栅格数据驱动
  • ogrprovider:读取矢量数据驱动
  • version:版本

由于源代码为 utf-8 编码,本机 locale 为中文,编译时可能出现 ”Newline in constant“ 的错误,需显示告诉编译器源码为 utf-8 :
右键-Properties-- c/c++,Command Line,Addtional Options 里添加:
/source-charset:utf-8
编译选项选择“RelWithDebInfo”,进行编译。由于源码比较多,先编译 core、native。总体耗时比较久,可能30分钟以上。

6、运行

build 完成后,输出在 C:\OSGeo4W64\QGIS\build\output\bin\RelWithDebInfo,如图:

qgis 依赖比较多,可通过设置环境变量的方式来运行。以下内容保存为 qgis.bat。

@echo off
set OSGEO4W_ROOT=C:\OSGeo4W64
call "%OSGEO4W_ROOT%\bin\o4w_env.bat"
call "%OSGEO4W_ROOT%\bin\py3_env.bat"
call "%OSGEO4W_ROOT%\bin\qt5_env.bat"
start qgis

双击运行 qgis.bat:

开发版启动界面

qgis主界面

参考资料:
qgis install
qgis 编译
李民錄 qgis 编译

猜你喜欢

转载自blog.csdn.net/qq503690160/article/details/113615318