因为项目上的需要,需要用到64位的GDAL,就趁着这个机会把GDAL的64位编译下,因为用到了投影转换的代码,就需要PROJ4的支持。
1、PROJ4 64位编译:
下载地址为:proj,对于一些人来说,比如我,PROJ是一个必须的库,GDAL虽然很强大,但是当需要对影像进行投影转换时,如果没有PROJ的支持,是一件很吃力的事情。目前最新的版本为4.8.0。
对于64位的编译,使用的编译平台为VS2010,使用“X64兼容工具命令提示”,如下图所示:
之后使用cd命令切入到proj源码的存放文件夹,之后使用编译命令
nmake -f makefile.vc
nmake -f makefile.vc install-all
如果不对nmake.opt进行修改的话,就会在C:\PROJ生成编译后的bin lib include等文件夹。
2、GDAL 64位编译
目前最新版的GDAL版本是1.10.1,但是总感觉最新版的有些问题,对于GDAL一直都是使用倒数第二版的1.10.0.下载地址:GDAL
对于GDAL的64位编译,需要首先修改nmake.opt文件,首先要修改在第153行的语句,将注释消去,变为
# Uncomment the following if you are building for 64-bit windows
# (x64). You'll need to have PATH, INCLUDE and LIB set up for 64-bit
# compiles.
WIN64=YES
之后,在第433和434行出取消注释,并修改为
# PROJ.4 stuff
# Uncomment the following lines to link PROJ.4 library statically. Otherwise
# it will be linked dynamically during runtime.
#PROJ_FLAGS = -DPROJ_STATIC
PROJ_INCLUDE = -IC:\PROJ\include
PROJ_LIBRARY = C:\PROJ\lib\proj_i.lib
其中PROJ_INCLUDE为proj的编译后的include文件夹,PROJ_LIBRARY为编译后的PROJ的LIB文件存放路径,可根据自己的存放路径进行修改,
之后使用cd名列切换到GDAL的源码存放文件夹,使用编译命令来进行顺序编译:
nmake -f makefile.vc
nmake -f makefile.vc install
nmake -f makefile.vc devinstall
之后编译的结果就会保存在C:\warmerda\bld中。
PS:
前两天编了一个DLL,发现如果EXE中调用DLL,如果两个版本不一致的话就可能出错,简单的意思就是说debug调用debug版,release调用release版。
参考自:DLL调用