php7 vs2015编译64位,windows7下使用vs2015编译gdal2.3

前期准备工作:

1,下载apache-ant-1.9.11工具软件,并解压到D:\gdal\apache-ant-1.9.11目录下,配置环境变量

ANT_HOME=D:\gdal\apache-ant-1.9.11

PATH=%PATH%;%ANT_HOME%\bin

2,下载JDK1.8,用来编译jar和jni的dll。解压到D:\jdk1.8.0_40_b25目录下,配置环境变量

JAVA_HOME=D:\jdk1.8.0_40_b25

PATH=%PATH%;%JAVA_HOME%\bin

3,下载swigwin-3.0.12,并解压到D:\gdal\swigwin-3.0.12目录下备用。

准备工作做完后,开始编译工作:

1,编译geos-3.6.2

将下载到的源代码压缩包解压到D:\gdal\geos-3.6.2目录下,打开vs2015的开发人员命令提示框,切换到D:\gdal\geos-3.6.2目录下,然后输入

1 autogen.bat

2 nmake /f makefile.vc

稍等片刻,即可完成。

2,编译proj-4.9.3

将下载的源码压缩包解压到D:\gdal\proj-4.9.3目录下,打开vs2015的开发人员命令提示框,切换到D:\gdal\proj-4.9.3目录下,然后输入

nmake /f makefile.vc install-all

只要你没动任何配置,顺利编译完成后,你会在C:\PROJ找到编译过的可执行文件和dll,以及后期开发备用的头文件和lib文件等。这个目录暂时不用,后面编译完gdal后,要把这个目录下的的bin目录下的所有exe和dll复制到gdal编译后的bin目录下,否则,gdal会提示缺少dll文件导致无法运行。

3,编译gdal-2.3.0

将下载到的gdal2.3的源码压缩包解压到D:\gdal\gdal-2.3.0目录下,先不要编译,使用Notepad++工具软件打开D:\gdal\gdal-2.3.0这个目录下的nmake.opt文件,

找到GDAL_HOME = "D:\gdal\gdal-2.3.0-rt"这一行,修改成我这样的目录,这个目录要提前创建。这个目录是存放编译完成后所有的可执行文件和dll的地方。

找到”#WIN64=YES”,编译64位GDAL时,要删除前面的#。

找到“# Uncomment for GEOS support”这句,

将下面的三行代码改成如下:

GEOS_DIR=D:/gdal/geos-3.6.2

GEOS_CFLAGS = -I$(GEOS_DIR)/capi -I$(GEOS_DIR)/include -DHAVE_GEOS

GEOS_LIB     = $(GEOS_DIR)/src/geos_c_i.lib

然后找到# PROJ stuff这一行

将下面的代码修改成如下:

# for proj 4.x:

PROJ_FLAGS = -DPROJ_STATIC -DPROJ_VERSION=4

PROJ_INCLUDE = -ID:\gdal\proj-4.9.3\src

PROJ_LIBRARY = D:\gdal\proj-4.9.3\src\proj_i.lib

找到SWIG=swig.exe这一句,假如没有将swig的目录添加到环境变量中,那么将这句后面的swig.exe修改为swig.exe的全路径,如上面准备工作的第三步的目录D:\gdal\swigwin-3.0.12\swig.exe。如果设置了环境变量,那么就不需要进行修改了。

然后紧挨着下面几行代码,设置java的路径和java的include头文件的,修改成我如下的样子

# SWIG Java settings

!IFNDEF JAVA_HOME

JAVA_HOME = D:\jdk1.8.0_40_b25

!ENDIF

!IFNDEF ANT_HOME

ANT_HOME=D:\gdal\apache-ant-1.9.11

!ENDIF

JAVADOC=$(JAVA_HOME)\bin\javadoc

JAVAC=$(JAVA_HOME)\bin\javac

JAVA=$(JAVA_HOME)\bin\java

JAR=$(JAVA_HOME)\bin\jar

JAVA_INCLUDE=-I$(JAVA_HOME)\include -I$(JAVA_HOME)\include\win32

最后,别忘了保存。

做完以上准备工作,就可以开始编译了,打开vs2015的开发人员命令提示框,切换到D:\gdal\gdal-2.3.0目录下,然后依次执行如下命令:

1 nmake -f makefile.vc

2 nmake -f makefile.vc install

3 nmake -f makefile.vc devinstall

第一步会等待大约20分钟到30分钟,等待完成后,执行第二,和第三个命令,你会在D:\gdal\gdal-2.3.0-rt这个目录下,找到所有编译过的可执行文件和dll文件,包括支持二次开发的头文件和lib文件。

还记得编译proj的时候,会在C:\PROJ目录下生成编译后的文件吗?到C:\PROJ\bin目录下,将该目录下所有文件复制到D:\gdal\gdal-2.3.0-rt\bin目录下,现在,你会发现所有gdal的工具软件都可以运行了。

4、编译java使用的gdal.jar

这一步是为java程序员编译gdal.jar和需要使用到的jni的dll文件的。方便在java环境下使用gdal所有功能。

如果你严格按照我前面的步骤进行,到这里就简单了,还是打开打开vs2015的开发人员命令提示框,切换到D:\gdal\gdal-2.3.0\swig目录下,然后执行如下命令:

1 nmake /f makefile.vc java

等待完成后,你会在D:\gdal\gdal-2.3.0\swig\java目录下找到gdal.jar文件和gdalalljni.dll文件。

这里有个变化,我之前在编译gdal2.2.3的时候,会生成如下几个文件

gdalconstjni.dll

gdaljni.dll

ogrjni.dll

osrjni.dll

gdal.jar

到了gdal2.3,就把那4个dll都合并到一个dll文件里了。

最后将 gdal.jar文件和gdalalljni.dll文件也复制到D:\gdal\gdal-2.3.0-rt\bin目录下。

如何在java里使用。用eclipse新建一个java项目,在lib中进入gdal.jar文件,注意,我编译这个jar的时候使用的是jdk1.8,所有新建工程也要使用jdk1.8。然后一路下一步。完成后,选择编译配置,

5e8a31bd4e23591eda50fd654b1f3512.png

这里是我mac上的环境配置,如果在win下,你要把这个里改成D:\gdal\gdal-2.3.0-rt\bin目录。然后就可以使用java代码做gdal的二次开发了。

后记:

如果需要编译64位的dll和jni的dll,需要启用vs2015的64位编译命令行

从开始菜单打开“VS2015 x64 本机工具命令提示符”工具

然后编译geos库的时候,要传递一个WIN64=YES的参数

编译proj的时候,不用传递任何参数,proj代码会自动判断当前编译环境。

编译gdal的时候,一定要在nmake.opt文件里将

#WIN64=YES前面的注释去掉,然后就是等编译结束就行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值