源代码下载

git clone https://github.com/OSGeo/gdal.git

PROJ安装配置

GDAL3.0以上版本必须依赖于PROJ库(6.0以上版本),因此需要在编译前安装PROJ。PROJ可以通过源代码编译安装,这种方式我刚开始尝试了没有成功,也可以通过osgeo或conda安装,我采用的是conda安装

conda create -n proj python=3.8
#安装proj包
conda activate proj
conda install proj

通过conda安装的PROJ,安装目录如下,在后面会用到这两个目录

D:\ProgramData\Anaconda3\envs\proj\Library\include

这个目录包含PROJ的头文件

D:\ProgramData\Anaconda3\envs\proj\Library\lib

这个目录包含PROJ的库文件

此外还需要配置环境变量PROJ_LIB,否则会在用GDAL进行坐标转换时报错,PROJ_LIB为proj.db所在路径


并修改环境变量Path,添加下图路径,否则会报错找不到proj.dl

修改编译配置文件

修改GDAL源码目录下的nmake.opt文件

  • GDAL_HOME = “C:\warmerda\bld” GDAL的安装路径(66行左右),可以根据自己的需要进行修改,我的是GDAL_HOME = “G:\warmerda\bld”
  • PROJ_INCLUDE 和 PROJ_LIBRARY(260行左右) ,在编译的时候需要指明PROJ路径,我的如下:
PROJ_INCLUDE = -ID:\ProgramData\Anaconda3\Library\include
PROJ_LIBRARY = D:\ProgramData\Anaconda3\Library\lib\proj.lib shell32.lib ole32.lib

编译

打开x64 Native Tools Command Prompt for VS 2017工具,切换到GDAL源码目录下

编译安装步骤

  • nmake -f makefile.vc WIN64=1
    注意:在nmake.opt文件中可以通过去掉WIN64=YES的注释,来编译64位的GDAL,但我这样做编译一直报错(很奇怪),所以就在编译命令行中直接加上WIN64=1,效果是一样的,编译成功
  • nmake -f makefile.vc WIN64=1 install
    这会在安装目录下生成bin和data两个文件

    bin文件夹中存放的是GDAL命令行工具,将该目录添加到环境变量PATH后,可以直接调用

    环境变量

    GDAL命令行调用
  • nmake -f makefile.vc WIN64=1 devinstall
    这会在安装目录下生成include和lib两个文件,用于二次开发,后续VS开发环境配置会用到这两个目录

VS2017 GDAL配置

  • 打开VS2017新建项目
  • 项目、属性
  • VC++目录、包含目录
  • VC++目录、库目录
  • 链接器、输入、附加依赖项

测试

注意修改为自己的图像路径

#include <gdal_priv.h>
#include <iostream>
using namespace std;int main()
{GDALAllRegister();const char * tifpath = "./demo.tif";GDALDataset * ds = (GDALDataset *)GDALOpen(tifpath, GA_ReadOnly);if (ds == NULL){cout << "打开文件失败" << endl;return 0 ;}cout << "图像基本信息" << endl;cout << ds->GetDriver()->GetDescription() << endl;cout << "图像元数据" << endl;cout << ds->GetDriver()->GetMetadataItem(GDAL_DMD_LONGNAME) << endl;int bandcount = ds->GetRasterCount();cout << "图像波段数目:" << bandcount << endl;int width = ds->GetRasterXSize();int height = ds->GetRasterYSize();cout << "图像宽度:" << width << endl;cout << "图像高度:" << height << endl;const OGRSpatialReference * sr = ds->GetSpatialRef();char * srwkt;sr->exportToWkt(&srwkt);cout << "坐标信息:" << endl;cout << srwkt << endl;system("pause");return 0;
}

输出

基于VS2017编译配置GDAL教程相关推荐

  1. win10 VS2017编译Audacity详细教程

    win10 VS2017编译Audacity详细教程 安装Visual Studio2017和git,这里不详细叙述,网上很多教程. 配置wxWidgets a.官网下载地址http://www.wx ...

  2. win10+VS2017编译配置boost_1_78_0

    1.编译boost库 1.1下载boost 下载官网地址:boost_1_78_0 注意,有时候会下载不全,下载之后检查一下 如果下载不完全,编译不能通过 1.2 解压 解压,一定要解压到一个指定文件 ...

  3. android studio开发rtk,科学网—基于VS2017编译调试rnx2rtkp - 陈超的博文

    2.4.2 p13和2.4.3 b33版本中的rnx2rtkp项目提供了完整的visual studio解决方案文档,但是2.4.3 b33中缺失了msc.vcproj文件: 如果想要用2.4.3版本 ...

  4. VS2019配置GDAL2教程

    文章目录 环境 配置教程 1. 下载 GDAL 2.3.2 2. 修改源代码 3. 编译源代码 4. 在 VS2019 项目中配置 GDAL 5. 设置环境变量 6. 拷贝 gdal203.dll 到 ...

  5. 使用VS2017编译sqlite和在VS2017中配置使用sqlite的简单例子演示

    转自:http://blog.csdn.net/hyxiaohaiyang/article/details/7382551 知识补充: sqlite3.dll动态链接库,它允许程序共享执行特殊任务所必 ...

  6. Ice-3.5.1在CentOS 6.5系统中的编译配置教程

    Ice-3.5.1在CentOS 6.5系统中的编译配置教程 1 操作系统 CentOS release 6.5 (Final)  x86_64 系统. 2 源码包下载 Ice-3.5.1.zip 下 ...

  7. objectARX2018+CAD2018_x64+VS2015开发环境详细配置过程(基于向导编译)

    步骤一.下载对应文件 1.VS2015 update3版本:官网下载community版本:https://my.visualstudio.com/Downloads?q=visual%20studi ...

  8. 基于LLVM的编译原理简明教程 (1) - 写编译器越来越容易了

    基于LLVM的编译原理简明教程 (1) - 写编译器越来越容易了 进入21世纪,新的编程语言如雨后春笋一样不停地冒出来.需求当然是重要的驱动力量,但是在其中起了重要作用的就是工具链的改善. 2000年 ...

  9. opencv3.4.6 vs2017 win10 配置contrib库 教程

    从opencv3开始,将sift.surf等函数相关的库单独拎出来了,若要使用需配置contrib包.本文介绍了如何在vs2017中配置contrib+opencv.所用版本为opencv3.4.6+ ...

最新文章

  1. 数据项目总结 -- 蛋壳公寓租金分析!
  2. Domino URL Command 详解
  3. 云服务双十一大促,最后选手阿里云上场!没有让等到最后的用户失望!
  4. 微盘 计算机英语,高中英语,微盘.doc
  5. 【转】gdb 调试段错误
  6. 操作系统服务:logging日志记录模块
  7. Kafka参数图鉴——unclean.leader.election.enable
  8. 18寒假最后一测+dijistra模板
  9. js点击图片查看大图,并可以拖动,且滚动滑轮放大缩小
  10. 华晨集团债务违约65亿 宝马中国:华晨宝马运营不受影响
  11. Python组合数据类型:容器类型转换,list←→tuple←→set
  12. USACO milk
  13. PaddlePaddle(2)——数据获取与处理(以CV任务为主)
  14. EasyUI:datagrid清空所有选择行
  15. Java求 a+aa+aaa+aaaa+a....a 的值
  16. 小米手机获取ROOT权限的一些坑及补坑经验
  17. excel单元格内容拆分_Excel | 单元格内容换行方法
  18. 锐度对比度饱和度什么的
  19. 西方经济学微观部分中的英文字母缩写
  20. HTML+CSS做的商城页面

热门文章

  1. 发微博说服务器数据有延迟,微信回应消息延迟bug:由于系统抖动原因致信息延迟...
  2. js 实现post跳转页面
  3. 周末动物园旅游计划书
  4. android界面赏析,Android L的UI赏析 部分比苹果iOS 8更赏心悦目
  5. VMware开启IPV6地址
  6. vue安装和卸载依赖包
  7. 星露谷物语多玩家不显示服务器模式,《星露谷物语》多人模式最新详情 玩家之间可结婚!...
  8. 计算机音乐火影,【史上最全的火影BGM(背景音乐)】
  9. Spring Boot中DAO层和Service层等理解
  10. word旋转画布的vba源码