VS2015+Qt5.10编译GIS3.10

这几天一直在摸索着编译QGIS(长期支持版本),把整个编译过程记录下来。

一. 安装Cygwin

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
有可能网络不通畅,上面的地址需要手动添加上去,点击【下一步】

http://cygwin.mirror.constant.com

在这里插入图片描述

在这里插入图片描述
下载flex(词法分析)
在这里插入图片描述
下载Bison
在这里插入图片描述
注意:

  • 以上只需要下载flex和Bison
  • View选择Category
  • 双击skip使之显示出版本号
    所有搜索完成之后,点击【下一步】

在这里插入图片描述
开始下载
在这里插入图片描述
有可能下载会中断,长时间的停滞在某一个进度,需要重新走一遍流程,重新下载,下载的时间比较长!

二、安装osgeo4w-setup-x86_64.exe

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果没有出现网址,需要手动添加;

http://download.osgeo.org

网络不稳定的话,重复以上过程多次,才可以正常下载

在这里插入图片描述
直接输入qgis-dev-deps 点击【skip】显示出版本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、解压ninja-win文件

把解压的ninja.exe 放到OSGeo4W64\bin目录下面
在这里插入图片描述

四、下载完成之后,在目录下面添加一个path.dat文件

在这里插入图片描述
里面的内容是:

@echo off
set VS140COMNTOOLS = D:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools
call "D:\Program Files (x86)\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=D:\QGIS\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:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
path %PATH%;D:\QGIS\cmake-3.19.2-win64-x64\bin;C:\cygwin64\bin
@set GRASS_PREFIX7=D:/QGIS/OSGeo4W64/apps/grass/grass78
@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中GRASS_PREFIX中可能是GRASS_PREFIX7,而且路径必须是反斜杠“/”
    双击path.bat
    然后输入 cmake-gui
    在这里插入图片描述
    弹出cmake界面。配置下载的QGIS文件夹目录
    首先在根目录下面添加文件夹:build_x64
    在这里插入图片描述
    在这里插入图片描述

点击按钮【configure】
在这里插入图片描述
点击【Finish】
在这里插入图片描述

点击【Generate】,如果配置都正确的话应该是一次就成功,点击【Open Project】
打开VS2015工程

五、编译过程中的问题分析

1.常量换行符

error C2001: 常量中有换行符

另存为,修改编码方式
在这里插入图片描述
在这里插入图片描述

2.fatal error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突

打开项目的vcxproj文件
搜索里面的:machine:X86 全部改成machine:X64

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页