美文网首页
qgis 编译运行(win10 + vs2015)

qgis 编译运行(win10 + vs2015)

作者: dc的梦呓 | 来源:发表于2019-02-19 00:17 被阅读5次

    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 编译

    相关文章

      网友评论

          本文标题:qgis 编译运行(win10 + vs2015)

          本文链接:https://www.haomeiwen.com/subject/ywnzeqtx.html