1. 源码下载

本次编译需要gdalgeosproj三个框架的源码,具体的下载地址如下:

序号

框架名称

源码地址

1

gdal

https://hub.fastgit.org/OSGeo/gdal.git

2

proj

https://hub.fastgit.org/OSGeo/PROJ.git

3

geos

https://hub.fastgit.org/libgeos/geos.git

fastgit也算一个国内github的一个加速版本。当然也可以把代码搞到自己的gitee上,这样下载会更快,具体的方法参见GeoTools入门(一)-- 源码构建。

2. 切换版本

根据要求,我们需要将各个版本切换至我们需要编译的版本,具体切换命令如下:

git checkout -b 2.4.3_dev 2.4.3

这里需要注意的是,本地版本最好不要和tag版本名称一致,否则后面会有很多问题,这里我们直接在tag分支的版本后面加_dev。

其他的框架按照如下表格切换至相对应的版本。

序号

框架

版本

1

gdal

v2.4.3

2

proj

4.9.2

3

geos

3.7.2

3. geos编译

3.1 打开VS2015 x64 本机工具命令提示符工具,并进入geos文件夹

java 使用gdal 切地图 gdal java 编译_java 使用gdal 切地图

3.2 执行如下脚本

autogen.bat

java 使用gdal 切地图 gdal java 编译_git_02

3.3 编译与安装

nmake /f makefile.vc

java 使用gdal 切地图 gdal java 编译_vs2015_03

4. 编译PROJ

4.1 打开VS2015 x64 本机工具命令提示符工具,并进入PROJ文件夹

4.2 执行如下命令

nmake /f makefile.vc install-all

此时会在C:\PROJ下生成如下文件内容

java 使用gdal 切地图 gdal java 编译_gdal源码编译_04

5. 编译Gdal

切换到对应的版本,这里我们用v2.4.3

5.1 修改配置文件nmake.opt

5.1.1 集成Proj4

在nmake.opt文件中,找到proj4库的位置,大概在557行左右。

# for proj 4.x:
#PROJ_FLAGS = -DPROJ_STATIC -DPROJ_VERSION=4

#PROJ_INCLUDE = -Id:\projects\proj.4\src
#PROJ_LIBRARY = d:\projects\proj.4\src\proj_i.lib

由于上面我们编译的PROJ是4.9.2,所以这里我们选择放开PROJ_FLAGS = -DPROJ_STATIC -DPROJ_VERSION=4,另外还要修改PROJ_INCLUDEPROJ_LIBRARY两个变量,最终结果如下:

PROJ_FLAGS = -DPROJ_STATIC -DPROJ_VERSION=4

PROJ_INCLUDE = -IF:\gdal\PROJ\src
PROJ_LIBRARY = F:\gdal\PROJ\src\proj_i.lib

注意:
PROJ_INCLUDE值前面的-I不能省略。

5.1.2 集成GEOS

在nmake.opt文件中,找到geos库的位置,大概在621行左右。

#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=F:\gdal\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的地址改一下就行。

6 编译GDAL

6.1 进入gdal文件夹

打开VS2015 x64 本机工具命令提示符工具工具,进入F:\gdal\GDAL\gdal路径。依次输入如下命令:

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

6.2 拷贝文件

PROJ4库源代码src文件夹下的dll文件proj.dllGEOS库文件夹下src文件夹中geos_c.dll文件,都拷贝到GDAL编译后存放的目录下的bin文件夹中gdal204.dll的同级目录下,否则会提示你找不到proj.dllgeos_c.dll文件。

7 在vs2015上配置gdal

  • 打开vs2015,新建一个 c++ 空项目。然后通过视图->其他窗口->属性管理器,打开属性管理器。
  • 在VC++目录依次添加包含目录、库目录:
  • 包含目录:F:\GDAL\include
  • 库目录:F:\GDAL\lib
  • 再在链接器->输入添加附加依赖项,手动输入gdal_i.lib
  • 设置环境变量
    依次点击计算机->属性->高级系统设置->环境变量->系统变量内的 path,默认为C:\warmerda\bld\bin