VS2019c++配置GDAL和HDF库新手入门
VS2019c++配置GDAL和HDF库新手入门
- 1.准备
- 下载
- 2.编译和安装
- 2.1编译SQLite
- 2.2编译PROJ
- 2.3安装 编译GDAL
- 2.4编译GEOS库
- 2.5集成GEOS+HDF4+HDF5
第一次写博客,记录一下自己VS2019配置GDAL和安装HDF库的艰难过程,参考了好多前辈的教程,我在这边整理记录一下我最终成功的配置过程。
我安装的是x64
的Release
版本(x86和debug应该也都大同小异,具体可以参考我的最后的参考博客)。
VS2019 C++,SQLite3 + PROJ6 + GDAL3 + GEOS3.7 + HDF4 + HDF5
1.准备
GDAL3.0编译要求PROJ6投影库,而PROJ6又要求SQLite3环境,所以在编译GDAL之前我们需要先编译好SQLite和PROJ6.
GDAL本身没有自带HDF库,如果需要读取HDF4/5数据的话还需要集成GEOS库和HDF4/5库。
下载
1)下载库(a b c必备,d e f可选)
a.GDAL官方下载地址为 官网,我下载的版本是gdal-3.1.1;
b.PROJ6的官方下载地址为 官网,我现在的版本为6.3.2版本;
c.SQLite3的官方下载地址为官网,下载Source Code下的sqlite-amalgamation-3280000.zip
,和Precompiled Binaries for Windows下的sqlite-dll-win32-x86-3280000.zip
sqlite-tools-win32-x86-3280000.zip
为了方便编译,我将下载的三个文件分别解压在D盘的WORK
目录下GDAL
、PROJ
、SQLite
文件夹内,以备后用。
d.GEOS下载,地址官网,我下的geos-3.7.3,后面需要编译;
e.HDF4库下载,HDF4.2.6,HDF4.2.6_win_x64.zip;
f.HDF5库下载,HDF1.8.7,HDF5-1.8.7_win_x64.zip;
e
和f
下载的就是编译好的,将下载的GEOS、HDF4、HDF5分别解压到自己定义的生成GDAL目录(我的是D:\WORK\GDALwarmerda
)下的supportlibs
文件夹下,方便后面配置。
2)工具下载
cmake官方下载地址为官网,下载cmake-3.18.0-rc3-win64-x64.msi
文件直接在windows上安装,之后添加环境变量,以便在cmd命令行中使用。详细方法
2.编译和安装
2.1编译SQLite
按照参考1编译
2.2编译PROJ
按照参考1编译
2.3安装 编译GDAL
这部分与参考1稍微不同(我编译的动态库),结合参考2我是这样弄的:
- 解压
将下载好的GDAL3.1.1解压到GDAL文件夹内。 - 修改GDAL源码中的nmake.opt文件(需要修改5处)
- 42行左右的
MSVC_VER=
设置为1921
,具体数字根据自己的MSVC版本设置,参考这个; - 66行左右的
GDAL_HOME =
设置成想要的位置,我设置成D:\WORK\GDALwarmerda
; - 207行左右的
WIN64=YES
,删掉前面的#取消注释; - 254行左右的
PROJ_INCLUDE
和PROJ_LIBRARY
设置成上述2.2编译生成的PROJ时的include
和lib
文件夹,其中PROJ_INCLUDE
中的-I
后为地址,并把.lib
的名称改对; - 640行左右的
SQLITE_INC
和SQLITE_LIB
设置同上,地址改为SQLite3的对应地址和.lib
名称。
至此设置完成,保存文件。
- 编译GDAL
管理员运行x64 Native Tools Command Prompt for VS 2019
(在开始菜单中),cd
进入GDAL
文件夹下,输入以下3行命令:
nmake /f makefile.vc
nmake /f makefile.vc install
nmake /f makefile.vc devinstall
完成后会在上面设置的D:\WORK\GDALwarmerda
文件夹中生成bin
、lib
、data
、include
四个文件夹(别人好像还有html
文件夹,不知道我的为啥没有。。但貌似也不影响)
- 最后在VS2019中设置库的引用,参考博客中的6-8步(第8步是测试)。
P.S. 其中,第6步属性管理器
的配置中,VS2019中没有Microsoft.Cpp.x64.user
文件,可以把VS2017中带的MSBuild
文件夹整体复制到路径C:\Users\dell\AppData\Local\Microsoft
下,再重新打开属性管理器
继续配置就可以看到Microsoft.Cpp.x64.user
了。
在此附上MSBuild文件链接,提取码8ouy(感谢前辈的分享)。
2.4编译GEOS库
- 修改GEOS源码文件夹中的
nmake.opt
文件:
- 56行的
WIN64=
设置成YES; - 166和167行的
GEOS_MSVC
和GEOS_MSC
分别按照自己的MSVC版本修改,参考这个;
- 管理员运行
x64 Native Tools Command Prompt for VS 2019
(在开始菜单中),cd
进入GEOS
文件夹下,输入以下命令:
autogen.bat
nmake -f makefile.vc
完成编译。生成的lib和dll文件在src文件夹下,共五个。
2.5集成GEOS+HDF4+HDF5
再次修改GDAL
源码中的nmake.opt
文件。
- GEOS处(找到#Uncomment for GEOS support (GEOS >= 3.1.0 required))
将以下代码
#GEOS_DIR=C:/warmerda/geos
#GEOS_CFLAGS = -I$(GEOS_DIR)/capi -I$(GEOS_DIR)/source/headers -DHAVE_GEOS
#GEOS_LIB = $(GEOS_DIR)/source/geos_c_i.lib
修改为
GEOS_DIR=D:\WORK\GDALwarmerda\supportlibs\geos-3.7.3
GEOS_CFLAGS = -I$(GEOS_DIR)/capi -I$(GEOS_DIR)/include -DHAVE_GEOS
GEOS_LIB = $(GEOS_DIR)/src/geos_c_i.lib
- HDF4和5处(找到# Uncomment the following and update to enable NCSA HDF Release 4 support.)
分别将以下代码
#HDF4_PLUGIN = NO
#HDF4_DIR = D:\warmerda\HDF41r5
#HDF4_LIB = /LIBPATH:$(HDF4_DIR)\lib Ws2_32.lib
#HDF4_INCLUDE = $(HDF4_DIR)\include
和
#HDF5_PLUGIN = NO
#HDF5_DIR = c:\warmerda\supportlibs\hdf5\5-164-win
#HDF5_LIB = $(HDF5_DIR)\dll\hdf5dll.lib
修改为
HDF4_PLUGIN = NO
HDF4_DIR = D:\WORK\GDALwarmerda\supportlibs\HDF4.2.6_win_x64
HDF4_LIB = $(HDF4_DIR)\dll\hd426m.lib $(HDF4_DIR)\dll\hm426m.lib \
$(HDF4_DIR)\lib\hd426.lib $(HDF4_DIR)\lib\hm426.lib Ws2_32.lib
HDF4_INCLUDE = $(HDF4_DIR)\include
和
HDF5_PLUGIN = NO
HDF5_DIR = D:\WORK\GDALwarmerda\supportlibs\HDF5-1.8.7_win_x64
HDF5_LIB = $(HDF5_DIR)\dll\hdf5dll.lib
修改完毕,保存文件。
最后打开x64 Native Tools Command Prompt for VS 2019
,进入GDAL文件夹下,重新运行以下三行命令:
nmake /f makefile.vc
nmake /f makefile.vc install
nmake /f makefile.vc devinstall
完成GDAL编译。
最后的最后,记得将hdf库中的dll文件夹下的.dll
文件、GEOS库文件夹下src文件夹中geos_c.dll
文件,都拷贝到GDAL编译后存放的目录下的bin文件夹中gdal301.dll
的同级目录下,否则会提示你找不到xxx.dll
文件。
大功告成!!!
感谢各位大神~~
[1]. https://blog.csdn.net/weixin_42141589/java/article/details/94357199
[2]. https://blog.csdn.net/qq_32153213/article/details/81363588
[3]. https://blog.csdn.net/zhaojunwuiris/article/details/87862484
[4]. https://blog.csdn.net/tracycaesar/article/details/25514185
[5]. https://blog.csdn.net/qq_38593182/article/details/102772556
VS2019c++配置GDAL和HDF库新手入门相关推荐
- vue-cli脚手架配置基础文件详解/新手入门必看
vue-cli 脚手架中webpack 配置基础文件详解 需要Word版本 的小伙伴可以发我邮件2445478193@qq.com 一.前言 vue-cli是构建vue单页应用的脚手架,输入一串指定的 ...
- 【C++】GDAL读取HDF数据
(45条消息) VS2019c++配置GDAL和HDF库新手入门_程程gg酱的博客-CSDN博客_gdal vs2019 (45条消息) 使用GDAL获取HDF等数据集中的图像_箜_Kong的博客-C ...
- 计算机与交换机基础配置入门,新手入门篇:交换机配置窍门深入学习 -电脑资料...
新手入门篇:交换机配置技巧深入学习,关于交换机配置技巧的问题,涉及到的东西比较多, 交换机配置技巧一直以来是非常神秘的,不仅对于一般用户,对于绝大多数网管人员来说也是如此,同时也是作为网管水平高低衡量 ...
- LINUX新手入门及安装配置FAQ(http://bbs.blueidea.com/viewthread.php?tid=635906amp;page=)
LINUX新手入门及安装配置FAQ 剑气凌人 [楼主] 尖脐 荣誉管理团队 帖子 6386 体力 10046 威望 168 当前 北京 海淀区 发短消息 个人网站 1# 大 中 小 发表于 ...
- [转贴]LINUX新手入门及安装配置FAQv
[转贴]LINUX新手入门及安装配置FAQ 网络技术论坛 > Unix/Linux 专区 > Unix/Linux安装和管理 linmingchongAug 24 2004, 10:47 ...
- Linux配置gdal变量环境,基于GDAL库的LINUX环境下的FY-3D和FY-4A遥感数据处理
王燕婷 摘要 基于GDAL库的功能和其开源.可对栅格空间数据操作的特点,将GDAL与C++语言的完美结合,可极大得发挥其在开发遥感图像处理软件中的优势,并可跨平台应用于不同操作系统下的遥感图像数据处理 ...
- IntelliJ IDEA 最常用配置详细图解,新手入门必看
转载自 IntelliJ IDEA 最常用配置详细图解,新手入门必看 刚刚使用IntelliJ IDEA 编辑器的时候,会有很多设置,会方便以后的开发,磨刀不误砍柴工. 比如:设置文件字体大小,代 ...
- 编译GDAL使用最新的HDF库配置文件
HDF库最新版本中的动态库以及目录结构都发生了变化,导致按照之前的博客进行编译GDAL时,会出问题.使用HDF4版本为HDF4-4.2.10,HDF5的版本为HDF5-1.8.12.两个库的目录结构如 ...
- 海洋cms新手入门安装配置教程
在安装本系统前,请先确认您的服务器环境是否符合海洋cms环境要求: Windows 平台: IIS/Apache/Nginx + PHP(5.x) + MySQL(5.x) Linux/Unix 平台 ...
最新文章
- 【Network Security!】认识进程与端口
- 子进程 已安装 post-installation 脚本 返回了错误号 1
- Android性能优化 - 内存优化
- agc015D A or...or B Problem
- 使用Java方法实现 Double和String相互转化
- Java核心(三)并发中的线程同步与锁
- python异常处理_Python基础语法案例(Fibonacci):选择结构、循环结构、异常处理结构、代码优化...
- 查询分析300万笔记录_给你100万条数据的一张表,你将如何查询优化?
- J2EE之初识JSP
- 听力技巧-4大难点讲析
- C++Builder2010创建线程
- 无法启动此程序因为计算机丢失uplay,Uplay登录不上咋办?Uplay登录不上的解决方法...
- 软件需求分析——UML用例图
- 关于opencv fitLine直线拟合得斜率及截距
- 爬虫Scrapy框架运用----房天下二手房数据采集
- 自己收藏的两款夹娃娃PHP源码
- 计算器软件测试数据,计算器软件测试报告.pdf
- 男人至少的道德底线(男女都该看)
- 小米4c android版本号,小米4c的手机系统是什么?能升级安卓5.0吗?
- 被百度接纳了一年的熊孩子!