1. 源码下载
本次编译需要gdal
,geos
和proj
三个框架的源码,具体的下载地址如下:
序号 | 框架名称 | 源码地址 |
1 |
| |
2 |
| |
3 |
|
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文件夹
3.2 执行如下脚本
autogen.bat
3.3 编译与安装
nmake /f makefile.vc
4. 编译PROJ
4.1 打开VS2015 x64 本机工具命令提示符工具
,并进入PROJ文件夹
4.2 执行如下命令
nmake /f makefile.vc install-all
此时会在C:\PROJ
下生成如下文件内容
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_INCLUDE
和PROJ_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.dll
、GEOS
库文件夹下src
文件夹中geos_c.dll
文件,都拷贝到GDAL
编译后存放的目录下的bin文件夹中gdal204.dll
的同级目录下,否则会提示你找不到proj.dll
、geos_c.dll
文件。
7 在vs2015上配置gdal
- 打开vs2015,新建一个 c++ 空项目。然后通过视图->其他窗口->属性管理器,打开属性管理器。
- 在VC++目录依次添加包含目录、库目录:
- 包含目录:F:\GDAL\include
- 库目录:F:\GDAL\lib
- 再在链接器->输入添加附加依赖项,手动输入gdal_i.lib
- 设置环境变量
依次点击计算机->属性->高级系统设置->环境变量->系统变量内的 path,默认为C:\warmerda\bld\bin