1、下载geos-3.7.3库,解压后如下图所示:

利用nmake来进行编译。

运行autogen.bat后,在目录中找到nmake.opt,这个文件控制着nmake编译的一些参数。记事本打开,找到如下片段:控制x64以及debug release版本。

!IFNDEF BUILD_DEBUG
BUILD_DEBUG = NO
!ENDIF!IFNDEF WIN64
WIN64 = YES
!ENDIF

查找自己的nmake版本号:

然后修改nmake.opt文件:

修改好配置之后,找到VS2017的本机工具命令提示符,CD到geos-3.7.3文件夹,输入命令:

nmake /f makefile.vc

运行进行编译即可。

结果如下:

2、编译proj5.2.0

先下载proj5.2.0库文件,解压后利用cmake工具打开:

点击“configure”,选择合适的编译器,就会出现上图的配置选项。
这里注意BUILD_LIBPROJ_SHARED和BUILD_SHARED_LIBS这两个选项默认是没有勾选的,如果直接编译,之后得到的就会是静态库。由于需要动态库,这里就都勾选了。
此外,CMAKE_INSTALL_PREFIX这个配置项也要注意。cmake得到的工程都有install工程,生成之后就会自动把需要的头文件、lib还有dll复制到对应的目录中去,这样方便我们管理。
之后点击“Generate”,之前设置的build目录中就生成了VS的工程。

3、编译GDAL2.3.3

下载2.3.3文件包 https://trac.osgeo.org/gdal/wiki/DownloadSource,解压缩后找到nmake.opt文件,打开修改,修改编译生成位置以及geos-3.7.3库和proj5.2.0库路径如下:

1)修改安装的目录

!IFNDEF GDAL_HOME
GDAL_HOME = "D:\GISCore\gdal-2.3.3\release"
!ENDIF

2)配置Proj4

# PROJ stuff
# Uncomment the following lines to link PROJ library statically. Otherwise
# it will be linked dynamically during runtime.
# To use the new API of proj5 or later, use
#PROJ_FLAGS = -DPROJ_STATIC -DPROJ_VERSION=5
# for proj 4.x:
#PROJ_FLAGS = -DPROJ_STATIC -DPROJ_VERSION=4#PROJ_INCLUDE = -Id:\projects\proj.4\src
PROJ_INCLUDE = -ID:\GISCore\proj_5_2\src
#PROJ_LIBRARY = D:\GISCore\proj_5_2\proj_i.lib
!IFDEF DEBUG
PROJ_LIBRARY = D:\GISCore\proj_5_2\lib\proj_5_2_d.lib
!ELSE
PROJ_LIBRARY = D:\GISCore\proj_5_2\lib\proj_5_2.lib
!ENDIF

3)配置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:\GISCore\geos-3.7.3
GEOS_CFLAGS = -I$(GEOS_DIR)/capi -I$(GEOS_DIR)/include -DHAVE_GEOS
!IFDEF DEBUG
GEOS_LIB     = $(GEOS_DIR)/lib/geos_c_i_d.lib
!ELSE
GEOS_LIB     = $(GEOS_DIR)/lib/geos_c_i.lib
!ENDIF

这段配置的意思是设置GEOS_DIR为GEOS的根目录,GEOS_CFLAGS引用到根目录下的capi文件夹和include文件夹作为编译需要的头文件,根据是否是debug模式,设置GEOS_LIB为对应的lib。

4)编译
在安装VS2017环境后的“开始菜单”中找到“VS2017x64本机工具命令提示符”并启用。CD到gdal-2.3.3目录,依次输入以下指令(debug模式)

nmake -f makefile.vc MSVC_VER=1910 WIN64=1 DEBUG=1 ANALYZE=1 WITH_PDB=1
nmake -f makefile.vc MSVC_VER=1910 WIN64=1 DEBUG=1 ANALYZE=1 WITH_PDB=1 install
nmake -f makefile.vc MSVC_VER=1910 WIN64=1 DEBUG=1 ANALYZE=1 WITH_PDB=1 devinstall

第一个指令表示编译,时间较长。第二个第三个指令表示安装,会把GDAL的依赖复制到GDAL_HOME制定的的文件夹。如果需要release模式,则输入以下指令:

nmake -f makefile.vc MSVC_VER=1910 WIN64=1
nmake -f makefile.vc MSVC_VER=1910 WIN64=1 install
nmake -f makefile.vc MSVC_VER=1910 WIN64=1 devinstall

vs2017编译GDAL2.3.3库:包括geos-3.7.3库和proj5.2.0库相关推荐

  1. gdal联合编译C++版本proj.4、geos、hdf4、hdf5、netcdf

    联合编译C++版本gdal编译过程文档 gdal联合编译C++版本proj.4.geos.hdf4.hdf5.netcdf 各依赖库源代码版本及下载地址 gdal Proj.4 geos HDF4 H ...

  2. mysql netcdf_gdal联合编译C++版本proj.4、geos、hdf4、hdf5、netcdf

    联合编译C++版本gdal编译过程文档 gdal联合编译C++版本proj.4.geos.hdf4.hdf5.netcdf 各依赖库源代码版本及下载地址 gdal Proj.4 geos HDF4 H ...

  3. vs2017 编译php扩展,vs2017编译和使用libcurl库

    libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器). libcurl当前支持http, ht ...

  4. vs2017编译boost库 ,解决无法打开文件“libboost_filesystem-vc140-mt-1_58.lib” 问题

    注:本文为工作问题记录,有些还未搞清楚原理,请见谅. 借鉴了网上分享的资料,感谢. 错误 LNK1104 无法打开文件"libboost_filesystem-vc140-mt-1_58.l ...

  5. vs2017编译libass静态库,并添加到ffmpeg中去,以支持ass,subtitles滤镜

    本人写过ffmpeg为mkv封装格式的音视频文件添加内挂字幕 ,里面字幕和视频是两个独立的通道,可以将字幕从文件中剔除,添加自己的字幕. 若想字幕和视频粘在一块,无法分割,则需要ass,subtitl ...

  6. Windows环境VS2017编译skia库-m84,亲测成功,使用官方编译的方法

    环境准备 Windows7/10电脑需要能访问https://skia.org/和https://skia.googlesource.com/skia.git 在Windows上安装Visual St ...

  7. VS2017 编译 PDFium 源码,生成 x86、x64,动态库、静态库

    PDFium 源码编译 一.下载源码:         1.下载 depot_tools 源码:                https://chromium.googlesource.com/ch ...

  8. windows VS2017 编译最新的libuv 库

    下载libuv:https://github.com/libuv/libuv (注意下载 libuv-1.35.0.tar.gz 版本,含有vcbuild.bat 文件,往后的版本没有).       ...

  9. VS2017编译gsf/surf/mbio —E0020 未定义标识符 “F_OK“

    1.编译gsf报了一个错误: 严重性    代码    说明    项目    文件    行    禁止显示状态 错误(活动)    E0020    未定义标识符 "F_OK" ...

最新文章

  1. 大学计算机基础知识点_自学录——大学计算机基础
  2. php 对数据转换成tree,PHP 把返回的數據集轉換成Tree樹
  3. WaitForSingleObject的用法举例
  4. VirtualBox安装Kali
  5. 信息系统项目管理师案例考试汇总(2005~2021年)
  6. Struts2运行机制(MVC)的分析:
  7. thetae_1在MATLAB中的意思,无刷直流电机在Matlab中的建模与仿真研究_荣军
  8. 从C/C++零基础到月入9K我用了9个月
  9. kettle升级jetty10实验(未完成jaas认证)
  10. 小米 Git(在线笔试)
  11. java.lang.NoClassDefFoundError: javax/wsdl/extensions/ElementExtensible
  12. Windows vCenter 6.5升级 VUM的安装
  13. Java中的Set, List, Map漫谈
  14. 热感传导不能证明经络的存在
  15. android 那个桌面好,手机桌面软件哪个好?最好用的手机桌面软件推荐
  16. Java Spring 框架详解
  17. 百度指数、淘宝指数学习笔记
  18. 计算机视觉OpenCv学习系列:第十部分、实时人脸检测
  19. 微信lbs开发java_【微信公众平台开发】之三:LBS的开发
  20. [现代诗]情诗——给网恋中人

热门文章

  1. javaScript学习笔记:用城市代码查询城市天气
  2. java 按比例生成随机数_JAVA 生成随机数,并根据概率、比率
  3. 中国5大新型IT技术社区与5大传统IT技术社区,你都知道哪些?
  4. 线性代数计算机应用论文,线性代数问题的计算机应用.docx
  5. 企业申请AAA企业信用等级认证的4大好处
  6. JanusGraph服务器
  7. hbuilder X设置vue模板
  8. 鞍点(MOOC 翁凯 C语言源码)
  9. 关于word“无法打开文件 ,因为内容有错误”的解决方法
  10. Part2:S3C2440裸跑一个LED程序