win64 编译GDAL+GEOS+PROJ4 For C++

  1. PROJ4库编译
  2. GEOS库编译
  3. GDAL+GEOS+PROJ4编译

1.PROJ4库编译。主要提供坐标系转换功能,不需要的略过。

(1) proj4源码可以到官网下载:  https://proj4.org/download.html#

下载后解压。打开解压后的文件夹,找到nmake.opt,用文本编辑器打开找到instdir,修改输出路径。这里用Visual Studio打开,修改并保存。

(2) 在开始菜单中找到Visual Studio 2013的工具,vs2013 x64本机工具命令提示,打开。

(3) 切换到proj4所在的目录。

(4) 输入编译指令。(每一行输入完毕,回车执行后再输入下一行。注意空格。)

    nmake    /f    makefile.vc 

    nmake    /f    makefile.vc    install-all

    nmake    /f    makefile.vc    clean   (清理刚才编译的临时文件,如不清理,下次编译将使用本地输出,可能会导致错误。此处我们先不清理,后面编译GDAL用到Proj4的部分临时文件。)

(5) 测试。

切换到proj.exe目录下,我这里是 D:\GDAL\PROJ\bin

输入proj    +proj=utm    +zone=11    +ellps=WGS84  回车

输入118d52’31″W    31d0’0″N   回车

输出:320959.50     3431111.32

2.Geos库编译,与Proj4的编译类似。

(1) 到geos官网下载源码:http://trac.osgeo.org/geos

解压。打开nmake.opt,将WIN64=NO 修改为 WIN64=YES,保存。

(2) 在开始菜单中找到Visual Studio 2013的工具,vs2013 x64本机工具命令提示,打开。切换到geos所在的目录,输入命令:

nmake    /f    makefile.vc 

(3)  测试参见:https://www.cnblogs.com/denny402/p/4965213.html

3. GDAL编译。

(1) 到gdal官网下载源码: https://trac.osgeo.org/gdal/wiki/DownloadSource

          或者下载历史版本: http://download.osgeo.org/gdal/

(2) 修改gdal输出路径,用VS打开nmake.opt找到GDAL_HOME,也可以不修改。

(3)  支持64位编译,用VS打开nmake.opt找到”#WIN64=YES“,将前面注释的#去掉,改为”WIN64=YES

                                      找到”SYM_PREFIX=_“,改为”SYM_PREFIX=“。保存。

(4) VS打开makefile.vc定位到BASE_INCLUDE ,将    

BASE_INCLUDE = /INCLUDE:_GDALSimpleImageWarp@36 /

/INCLUDE:_GDALReprojectImage@48 /

/INCLUDE:_GDALComputeMedianCutPCT@32 /

/INCLUDE:_GDALDitherRGB2PCT@28 /

/INCLUDE:_OCTNewCoordinateTransformation@8 $(VB6_SAFEARRAYSYM)

修改为:

BASE_INCLUDE = /INCLUDE:$(SYM_PREFIX)GDALSimpleImageWarp /

/INCLUDE:$(SYM_PREFIX)GDALReprojectImage /

/INCLUDE:$(SYM_PREFIX)GDALComputeMedianCutPCT /

/INCLUDE:$(SYM_PREFIX)GDALDitherRGB2PCT /

/INCLUDE:$(SYM_PREFIX)OCTNewCoordinateTransformation $(VB6_SAFEARRAYSYM)

就是将前面的下划线去掉,然后删除@开始的数字

(5) 集成Proj4。

 VS打开GDAL源码文件夹下的nmake.opt找到是否集成Proj4的代码

#PROJ_FLAGS = -DPROJ_STATIC

#PROJ_INCLUDE = -Id:\projects\proj.4\src

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

改为

PROJ_FLAGS = -DPROJ_STATIC

PROJ_INCLUDE = -ID:\GDAL\proj-5.0.0\src

PROJ_LIBRARY = D:\GDAL\proj-5.0.0\src\proj_i.lib

说明:确保src下面有编译好的proj_i.lib文件。

(6) 集成Geos。

 VS打开GDAL源码文件夹下的nmake.opt找到是否集成Proj4的代码

#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=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


说明:确保src下面有编译好的geos_c_i.lib文件。

(7) 编译GDAL

在开始菜单中找到Visual Studio 2013的工具,vs2013 x64本机工具命令提示,打开。切换到GDAL源码所在的目录,

输入命令:

nmake    /f    makefile.vc    WIN64=TRUE    DEBUG=TRUE

nmake    /f    makefile.vc    WIN64=TRUE    DEBUG=TRUE     install

nmake    /f    makefile.vc    WIN64=TRUE    DEBUG=TRUE     devinstall

如果不修改路径,会在路径下C:\warmerda\bld生成编译好的文件。

说明:DEBUG=TRUE,是生成调试版本。64位调试在VS里面需要设置环境,找到项目的Debug文件夹(生成工程exe的文件夹)把gdal111.dll、geos_c.dll、proj.dll拷进去,而且需要gdal源码文件夹下编译生成的gdal.lib、gdal_i.exp、gdal_i.lib、gdal111.ilk、gdal111.pdb几个文件。

参考资料:

1. https://blog.csdn.net/sf2gis2/article/details/50686728

2. https://blog.csdn.net/bjlqw/article/details/43838211

3. https://www.cnblogs.com/yhlx125/p/3632157.html

4. https://blog.csdn.net/liminlu0314/article/details/6144899

5. https://blog.csdn.net/liminlu0314/article/details/7363565

转载自:https://blog.csdn.net/abc2008151521/article/details/80313904

You may also like...