使用某些GDAL函数时报错:ERROR 6: GEOS support not enabled,查询后原因是GDAL默认编译未集成GEOS库。遂查询资料手动集成GEOS库编译GDAL,并以博客的形式记录下来。

环境:WIN7系统(x64),VS2013。

版本:GDAL-2.2.3,GEOS-3.7.1。(注:使用GDAL其他版本可能遇到诡异的错误(亲身经历。。。),当然你也可以尝试其他版本,good luck)

步骤(含32/64位,debug/release):

1.编译GEOS

(1)将GEOS源码解压至D:\tools文件夹。

若编译64位库,需打开geos-3.7.1文件夹中的nmake.opt文件,将WIN64 = NO改为WIN64 = YES;32位无需修改。

若编译Debug库,则将nmake.opt中的BUILD_DEBUG = NO改为BUILD_DEBUG = YES;Release无需修改。

(2)在程序中打开VS2013工具文件夹。

(3)打开对应版本命令提示工具(x64对应64位,x86对应32位),切换至目录D:\tools\geos-3.7.1,执行以下命令:

nmake -f makefile.vc

完成编译。生成的lib和dll文件在src文件夹下,共五个。

2.编译GDAL

(1)将GDAL压缩包解压至D:\tools文件夹。

(2)打开gdal-2.2.3文件夹中的nmake.opt文件,作以下修改:

编译64位库,将#WIN64=NO改为WIN64=YES,32位无需修改。

#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:\tools\geos-3.7.1
GEOS_CFLAGS = -I$(GEOS_DIR)/capi -I$(GEOS_DIR)/include -DHAVE_GEOS
GEOS_LIB     = $(GEOS_DIR)/src/geos_c_i_d.lib

注意,geos_c_i_d.lib是debug版本的库,编译release版本时使用geos_c_i.lib。

修改结果保存文件夹GDAL_HOME = "C:\warmerda\bld"为GDAL_HOME = "D:\tools\GDAL"。

若编译报错:odbccp32.lib(dllload.obj) : error LNK2019: unresolved external symbol _vsnwprintf_s referenced in function StringCchPrintfW
gdal202.dll : fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\link.EXE"'

可修改ODBC_SUPPORTED = 1为#ODBC_SUPPORTED = 1解决。

(3)同1(2)(3),打开对应版本命令提示符工具,切换至D:\tools\gdal-2.2.3目录下。

(4)依次执行以下命令:

nmake -f makefile.vc

nmake -f makefile.vc install

nmake -f makefile.vc devinstall

注:Debug版本第一行命令为nmake -f makefile.vc DEBUG=TRUE;

64位版本修改第二行第三行为:

nmake -f makefile.vc WIN64=TRUE install

nmake -f makefile.vc WIN64=TRUE devinstall

完成编译。

参考资料:

https://www.cnblogs.com/GIScore/p/5425206.html

https://blog.csdn.net/zhw_giser/article/details/47663581

https://blog.csdn.net/youzhuo/article/details/37930071/

https://blog.csdn.net/u011574296/article/details/76565703

https://blog.csdn.net/abc2008151521/article/details/80313904

GDAL集成GEOS编译笔记相关推荐

  1. Win64下编译集成GEOS和Proj4的GDAL

    文章目录 1.编译GEOS 2.编译Proj4 3.GDAL集成Proj4和GEOS 1) 修改安装的目录 2) 配置Proj4 3) 配置GEOS 4) 自定义动态库名称(可跳过) 5) 编译 1. ...

  2. GDAL集成对KML文件的支持

    文章目录 1. 正文 1.1. 编译LibKML 1.1.1. 第三方库支持 1.1.2. 编译错误 1.2. 配置GDAL 1.3. 链接问题 2. 参考 1. 正文 GDAL可以支持将KML作为矢 ...

  3. MRuby 编译笔记

    专注于嵌入式脚本的MRuby在Windows下的编译笔记: 环境: OS: Windows 8.1, 使用 VS Express 2013 for Desktop. 材料: MRuby : 下载源码就 ...

  4. SpringBoot集成Redis用法笔记

    今天给大家整理一下SpringBoot集成Redis用法笔记,希望对大家能有所帮助! 一.Redis优点介绍 1.速度快 不需要等待磁盘的IO,在内存之间进行的数据存储和查询,速度非常快.当然,缓存的 ...

  5. SpringBoot集成Mybatis用法笔记

    今天给大家整理SpringBoot集成Mybatis用法笔记.希望对大家能有所帮助! 搭建一个SpringBoot基础项目. 具体可以参考SpringBoot:搭建第一个Web程序 引入相关依赖 &l ...

  6. eos 编译笔记(注意点)

    eos 编译笔记(注意点) 一.从 GitHub 上下载原代码 二.下载完源代码后,执行编译原代码 三. 执行安装 四. 设置PATH路径 五. 启动nodeos节点 六. 通过config.ini文 ...

  7. FFmpeg 集成 x265 编译及解码

    x265 是一个免费的软件库和应用程序,用于将视频流编码为 H.265/MPEG-H HEVC 压缩格式,并在 GNU GPL 条款下发布. FFmpeg 为了支持 H.265 编.解码可以集成 x2 ...

  8. LFS7.4编译笔记(3)

    在第一部分,我们编译了一个工具链及临时系统,然后在第二部分我们chroot到/mnt/lfs下面,利用临时系统的工具编译了我们最终的LFS系统.不过此时,我们的LFS系统还是不完整的,因为我们还没有安 ...

  9. 小白openwrt编译笔记——固件编译

    基于lean源码编译 lean源码 其它源码 Lienol源码 同样github上的源码也在国外,没有好梯子下载也是很费劲,我们可以用码云克隆一下,实现国内下载源码 Gitee(码云) 霍泰稳 极客邦 ...

  10. android开关机动画和铃声配置 MTK编译笔记

    1, MTK平台开关机动画配置, 将需要调整的开关机动画和铃声放到alps\frameworks\base\data\sounds 这个目录下面,打开 该目录下的Android.mk文件,增加下面的编 ...

最新文章

  1. Go 性能优化技巧 8/10
  2. ECCV20| 3D目标检测时序融合网络
  3. Android零基础入门第30节:两分钟掌握FrameLayout帧布局
  4. Window7新建文件夹后刷新才显示的解决办法
  5. 微信「看一看」 推荐排序技术揭秘
  6. 如何成批导入数据到 kitten编程猫 类型为列表的变量中
  7. 《草原安魂曲》《自由意志》及其他我喜欢的电影海报
  8. Spring Boot----Dubbo
  9. [剑指offer][JAVA]面试题第[10-1]题[斐波那契数列][动态规划][记忆化递归]
  10. python 后10个元素_10 行 Python 代码写 1 个 USB 病毒
  11. 教你买虚拟主机不会受骗的九个方法
  12. 详解NRF24L01无线收发模块
  13. 六级(2020/12-2) Section B
  14. 中国姓氏人口排名及分布
  15. 计算机网络中ipv6什么意思,路由器ipv6是什么意思(图文)
  16. lae界面开发工具入门之介绍四--秘籍篇-拷贝粘贴
  17. js prototype原形
  18. matlab eigs 求特征值函数
  19. python代码写父亲节快乐图片_巧用代码制作动态图文图【父亲节】
  20. ABAP Modify 的用法(TRANSPORTING)

热门文章

  1. Android 如何测试你的Base64是否正确展示
  2. 在ENVI5.3 下基于GLT/IGM文件的几何校正具体过程
  3. 正二十面体制作步骤介绍
  4. JavaScript使用计时事件制作的电子时钟
  5. 创业维艰:一切从实际出发
  6. python 多分类情感词典_情感分类(sentiment classification)推荐使用什么算法和软件包?...
  7. lcx端口转发linux_LCX端口转发及NC反弹
  8. UML工具 Astah Professional8.0下载
  9. gateface php,XAMPP下载-Xampp(PHP环境套件)V8.01 官方win版-ucbug软件站
  10. 《HybridSN: Exploring 3-D–2-DCNN Feature Hierarchy for Hyperspectral Image Classification》论文学习笔记