win10 + vs2017 + gdal2.0.3 编译

1. 下载并解压gdal2.0.3

我的放置目录是:D:\Depend_3rd_party\gdal2\gdal-2.0.3,其中gdal-2.0.3是解压得到的文件夹

2. 修改 nmake.opt 文件

        用notepad++打开nmake.opt文件,修改以下三个部分:

(1)修改C++ compiler的版本

        如果是vs2017,则设置为1910, vs2015则设置为1900,本次安装MSVC_VER=1910。(在第46行)

(2)修改GDAL库安装路径。

        在gdal-2.0.3文件夹旁边新建一个名为install的文件夹,全局路径为:D:\Depend_3rd_party\gdal2\install。设置所以GDAL_HOME = “D:\Depend_3rd_party\gdal2\install”。

新建的install文件夹:

修改nmake.opt的位置(第62行): 

(3)打开win64选项(可以选择)

即将“#WIN64=YES”修改为“WIN64=YES”,如下图所示(在第172行):
 在其他版本中,这个选项可以在命令行中进行设置。

(4)修改PROJ_INCLUDE 和 PROJ_LIBRARY路径

        根据博客[2],GDAL3.0以上版本必须依赖于PROJ库(6.0以上版本),否则会在用GDAL进行坐标转换时报错。

        这里是GDAL2.0.3,可能不需要,在使用GDAL时会不会报错也尚以防未来会用到,这里把这个修改条目加进来了。 在467行左右。

        根据提示,可以在这里添加PROJ的静态链接,也可以在运行的时候以动态链接的形式添加。我这里暂时先没有添加。有需要的时候再添加,并回来修改。

3. 编译GDAL

(1) 打开VS2017的命令行窗口

        要选择指定的这个“适用于VS2017的x64本机工具命令提示”。

转到解压了gdal2.3.1的文件夹中,

(2)输入nmake编译命令。

        以下两种模式二选一:

        1)编译debug版本

        依次执行以下三行命令(需要全部执行才能编译完全)

nmake /f makefile.vc MSVC_VER=1910 WIN64=YES DEBUG=TRUE
nmake /f makefile.vc install MSVC_VER=1910 WIN64=YES DEBUG=TRUE
nmake /f makefile.vc devinstall MSVC_VER=1910 WIN64=YES DEBUG=TRUE

        2)编译release版本 

        依次执行以下三行命令(需要全部执行才能编译完全)

nmake /f makefile.vc MSVC_VER=1910 WIN64=YES RELEASE=TRUE
nmake /f makefile.vc install MSVC_VER=1910 WIN64=YES RELEASE=TRUE
nmake /f makefile.vc devinstall MSVC_VER=1910 WIN64=YES RELEASE=TRUE

        注:上面的步骤2已经修改了 MSVC_VER 和 WIN64 两个参数,为了保险起见,此处输入的指令还是添加了“MSVC_VER=1910 WIN64=YES”两个参数。

(3)编译完成

        install文件夹内的情况如下:

参考:

[1] WIN10系统下GDAL(2.3.1)的安装及VS2017中GDAL的配置_gdal203.dll-CSDN博客

[2] 基于VS2017编译配置GDAL教程_vs2017配置gdallibrary库_Chaoying.的博客-CSDN博客

 


 


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/128316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员想要网上接单却看花了眼?那这几个平台你可得收藏好了!

现在经济压力这么大,但是生活成本还在上升,相信大家都知道“四脚吞金兽”的威力了吧!话虽如此,但是生活总得继续,为了家庭的和谐幸福,为了孩子的未来,不少人选择多干几份工作,赚点外…

Macroscope安全漏洞检测工具简介

学习目标: 本介绍旨在帮助感兴趣者尽快了解 Macroscope,这是一款用于安全测试自动化和漏洞管理的企业工具。 全覆盖应用程序安全测试: 如下图所示,如果使用多种互补工具(SAST/DAST/SCA 等)来检测应用程序…

linux编译boost库并执行程序

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、--prefix命令 二、安装过程 1、shell脚本: 2、gcc编译环境 执行过程 三、linux下执行cpp程序 总结 前言 提示:这里可以添加本文…

【Synopsys工具使用】VCS使用与Makefile脚本调用

文章目录 一、文件导入二、VCS仿真(使用可视化界面)三、VCS仿真(使用Maefile文件)3.1 Makefile文件编写3.2 仿真文件编写规范3.3 Makefile文件使用 一、文件导入 新建一个文件夹新建一个文件夹(图中IC_work)   创建一个目录&…

3.18每日一题(奇偶性、奇偶性的平移、几何意义、配方、换元)

解法一:先配方,再用三角函数换元(看见根号一般用三角函数),看见对称区间联想奇偶性,最后再用公式 解法二: 利用奇偶性的平移,令(x-1) t ,对应的区…

项目实战:给首页上库存名称添加超链接然后带fid跳转到edit页面

1、提取公共方法common.js function $(key){if(key){if(key.startsWith("#")){key key.substring(1)return document.getElementById(key)}else{let nodeList document.getElementsByName(key)return Array.from(nodeList)}} } 2、 给库存名称添加超链接 2.1、inde…

力扣刷题 day63:11-02

1.字符串中的第一个唯一字符 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。 方法一:两次遍历哈希表 #方法一:两次遍历哈希表 def firstUniqChar(s):d{}for i in s:if …

数据库 | 看这一篇就够了!最全MySQL数据库知识框架!

大家好! 作为一名程序员,每天和各种各样的“数据库”打交道,已经成为我们的日常。当然,立志成为一名超级架构师的我,肯定要精通这项技能。咳咳!不过饭还是要一口一口吃的,“数据库”这个内容实在…

Linux Makefile变量详解

前言 我们是地球人。曾经为复杂的 Makefile 变量而苦恼过吗?这就是我们的用武之地。我们简化您的构建流程,以获得更快、更高效的结果。看看我们。 自 1976 年出现以来,Make 一直在帮助开发人员自动执行编译代码、构建可执行文件和生成文档的…

【Proteus仿真】【51单片机】贪吃蛇游戏

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器,使用8*8LED点阵、按键模块等。 主要功能: 系统运行后,可操作4个按键控制小蛇方向。 二、软件设计 /* 作者:嗨小易…

Keil uv5 MDK使用教程

目录 前言一、开发环境搭建1.1 Keil的安装1.2 其他工具安装1.3 注意事项 二、Keil基本使用2.1 新建工程模板2.1.1 基于固件库(先复制文件夹,后添加文件)2.1.2 基于寄存器2.1.3 基于HAL库 2.2 下载与调试2.3 工程目录下简介2.4 MDK使用技巧 前…

JavaScript

文章目录 1、JavaScript 的历史1.1 JavaScript 的历史1.2 JavaScript与ECMAScript的关系1.3 JavaScript与Java的关系1.4 JavaScript的版本 2、JS的引入方式3、ECMAScript基本语法3.1 变量3.2 注释3.2 语句分隔符 4、ECMAScript 基本数据类型4.1 数字类型4.2 字符串4.2.1 创建4.…

【计算机网络】运输层

概述运输层服务 运输层协议为运行在不同主机上的应用程序提供了逻辑通信功能。 运输层协议是在端系统中而不是在路由器中实现的。 运输层和网络层的关系: 网络层提供主机之间的逻辑通信,而运输层为**运行在不同主机上的应用程序(进程&#…

python爬虫利用代理IP分析大数据

目录 前言 一、什么是代理IP? 二、为什么需要使用代理IP? 1.突破访问限制 2.提高访问速度 3.保护隐私 三、代理IP的分类 1.高匿代理IP 2.普通代理IP 3.透明代理IP 四、如何获取代理IP? 1.免费代理IP网站 2.付费代理IP服务商 五…

前端基础之CSS

目录 一、CSS介绍 CSS语法 CSS注释 CSS的几种引入方式 二、CSS选择器 基本选择器 组合选择器 属性选择器 分组和嵌套选择器 伪类选择器 伪元素选择器 选择器的优先级 三、CSS属性相关 宽和高 字体属性 文字属性 背景属性 边框 border-radius display属性 …

常见接口测试面试题

1、按你的理解,软件接口是什么? 答: 就是指程序中具体负责在不同模块之间传输或接受数据的并做处理的类或者函数。 2、HTTP和HTTPS协议区别? 答: https协议需要到CA(Certificate Authority,证书…

物联网整体框架有哪些层面?

物联网是当前非常火热的话题,各个行业对物联网的关注和投入力度也很大,一些互联网巨头都在紧锣密鼓的布局物联网产业,抢占市场先机。 物联网的整体构架大致可以分为以下四个层面: 1.感知识别层 感知层是物联网整体架构的基础&…

HTML标题、段落、文本格式化

HTML标题&#xff1a; 在HTML文档中&#xff0c;标题是很重要的。标题是通过<h1> - <h6标签进行定义的&#xff0c;<h1> 定义最大的标题&#xff1b;<h6>定义最小的标题。 <hr> 标签在HTML页面中用于创建水平线&#xff0c;hr元素可用于分隔内容。…

【Linux】Nginx安装使用负载均衡及动静分离(前后端项目部署),前端项目打包

一、Nginx导言 1、引言 Nginx 是一款高性能的 Web 服务器和反向代理服务器&#xff0c;也可以充当负载均衡器、HTTP 缓存和安全防护设备。它的特点是内存占用小、稳定性高、并发性强、易于扩展&#xff0c;因此在互联网领域得到了广泛的使用。 总结出以下三点: 负载均衡&#x…

CN考研真题知识点二轮归纳(4)

持续更新&#xff0c;上期目录&#xff1a; CN考研真题知识点二轮归纳&#xff08;4&#xff09;https://blog.csdn.net/jsl123x/article/details/134135134?spm1001.2014.3001.5501 1.既可以扩展网段又是二层的设备 网段一般指一个计算机网络中使用同一物理层设备&#xff…