一、编译GEOS库
(1)
nmake编译
1、解压源码,如E:\geos3.5.2\geos-3.5.2路径下
2、修改nmake.opt文件,若编译64位库,需打开geos-3.7.1文件夹中的nmake.opt文件,将WIN64
= NO改为WIN64 =
YES;32位无需修改。若编译Debug库,则将nmake.opt中的BUILD_DEBUG
= NO改为BUILD_DEBUG =
YES;Release无需修改。
3、打开VS的工具命令提示,若编32位则打开VS2013
x86 本机工具命令提示,若编64位则打开VS2013 x64
本机工具命令提示。并进入geos路径下,如cd
E:\geos3.5.2\geos-3.5.2
4、依次在命令行输入autogen.bat和nmake /f
makefile.vc进行编译
5、编译成功后,会在E:\geos3.5.2\geos-3.5.2\src目录下生成geos.lib,
geos_i.lib, geos_c_i.lib, geos.dll,
geos_c.dll等五个文件。该生成的文件可以接着用来生成GDAL库
(2)
cmake-gui编译
1、打开cmake-gui,将CMakeLists.txt拖入其中,设置编译路径,点击configure按钮。
2、设置CMAKE_INSTALL_PREFIX,即输出路径,后续编译好的bin、include、lib都会生成在该路径中。点击configure按钮,若无报错点击generate按钮。
3、打开设置的编译路径,用VS打开工程,进入批生成,选择ALL_BUILD和INSTALL(release和debug可以按需生成),点击生成即可。
4、编译完成后在输出路径有bin、include、lib文件夹,可以提供给其他人员使用。
二、编译GDAL库
(1)
在GEOS库用nmake编译的基础上。
(2)
修改nmake.opt,修改GDAL_HOME路径,如GDAL_HOME
=
"E:\gdal\gdal202\install";修改geo库依赖,首先将GEOS库前的注释去掉,分别设置GEOS_DIR、GEOS_CFLAGS和GEOS_LIB,其中GEOS_CFLAGS需要改为-I$(GEOS_DIR)/capi
-I$(GEOS_DIR)/include
-DHAVE_GEOS。特别说明,设置的GEOS_DIR路径中不能有空格,设置完成后如下所示:
GEOS_DIR=
E:\geos3.5.2\geos-3.5.2
GEOS_CFLAGS = -I$(GEOS_DIR)/capi
-I$(GEOS_DIR)/include -DHAVE_GEOS
GEOS_LIB = $(GEOS_DIR)/src/geos_c_i.lib
(3)为了生成带后缀d的debug库,需要做如下修改
在nmake.opt中(100行处)添加
!IFDEF
DEBUG
LIB_SUFFIX=d
!ELSE
LIB_SUFFIX=
!ENDIF
然后,将nmake.opt和makefile.vc中所有的
gdal$(VERSION).dll修改为gdal$(VERSION)$(LIB_SUFFIX).dll
gdal_i.lib修改为gdal_i$(LIB_SUFFIX).lib
gdal.lib修改为gdal$(LIB_SUFFIX).lib
(4)
Nmake.opt设置完成后,打开VS的工具命令提示,输入nmake
-f makefile.vc MSVC_VER=1800 WIN64=1进行编译
(5)
输入nmake -f makefile.vc MSVC_VER=1800 WIN64=1 install
生成bin、data、html文件夹
(6)
输入nmake -f makefile.vc MSVC_VER=1800 WIN64=1
devinstall生成lib和include(其实)
(7)
结束!
**注意事项:
1、在将geos库集成到GDAL时,geos库的路径不能有空格,否则文件路径会被破坏从而导致geos库中的头文件无法被识别