VS2019编译GDAL2.4.0源码

工具准备

  1. gdal源码
  2. proj4源码
  3. geos源码
  4. hdf4源码
  5. hdf5源码

步骤

一、使用VS2019编译proj4 C++源码

  1. 按图示选择源码路径与将要生成的vs解决方案的存放路径。

    images

  2. 点击Configure并按图所示在弹出的窗口中选择Visual Studio版本。

    images

  3. 确定后日志信息最后一行出现Configuring Done即表示配置检测成功,顺便修改一下 CMAKE_INSTALL_PREFIX变量,此变量是生成的解决方案对应的INSTALL工程的安装目录,点击Generate生成。

    images

  4. 出现Generating Done字样即表示生成VS解决方案成功。

    images

  5. 点击OpenProject会自动使用Visual Studio 打开刚生成的解决方案。选择Release配置项,并生成INSTALL工程,即可将PROJ4的编译结果安装到之前配置的 CMAKE_INSTALL_PREFIX 变量的路径下。

    images

  6. 生成结果如下所示。

    images

二、编译geos C++源码

  1. 编译方式与Proj4一致,如下图所示。

    images
    images
    images
    images
    images
    images

三、编译hdf4 C++源码

  1. 编译方式与之前一直,不同之处在于参数检测时的配置,如下图所示

    images

  2. 打开解决方案后改为Release配置并生成INSTALL项目会报如下所示错误。

    images

  3. 由于源码提供的Cmake文件有问题,所以之前没有选择zlib,与jpeg 的支持,待生成解决方案后,自行配置,配置方式如下所示。

  4. 如下图为hdf4-shared与hdf4-static两项目配置附加目录

    images

  5. 如下图为hdf4-shared配置附加依赖项

    images

  6. 再次生成INSTALL项目,如果没有hdf-shared 与 hdf-static的错误 即为成功,其它的测试项目的错误不予理会。生成结果如下所示。

    images

四、编译hdf5 C++源码

  1. 同proj

五、编译gdal C++源码

  1. 修改nmake.opt配置文件

    GDAL_HOME = “D:\gdal\release\gdal”

    PROJ_INCLUDE = -Id:\gdal\release\proj\local\include
    PROJ_LIBRARY = d:\gdal\release\proj\local\lib\proj_4_9.lib

    GEOS_DIR=d:/gdal/release/geos
    GEOS_CFLAGS = -I$(GEOS_DIR)/include -DHAVE_GEOS
    GEOS_LIB = $(GEOS_DIR)/lib/libgeos.lib

    HDF4_PLUGIN = YES
    HDF4_DIR = D:\gdal\release\hdf4
    HDF4_LIB = /LIBPATH:$(HDF4_DIR)\lib libhdf.lib
    HDF4_INCLUDE = $(HDF4_DIR)\include

    HDF5_PLUGIN = YES
    HDF5_DIR = D:\GDAL\release\hdf5
    HDF5_LIB = $(HDF5_DIR)\lib\libhdf5.lib

  2. 打开 x64 Native Tools Command Prompt for VS 2019, 并改变路径到GDAL的源码路径下执行 nmake -f makefile.vc MSVC_VER=1900 WIN64=1 INSTALL,会报以下错误

    images

  3. 通过修改源码临时解决。

    images

  4. 重新执行命令

    images

六、配置环境变量

Path加入以下变量
./gdal/bin
./geos/bin
./hdf4/bin
./hdf5/bin
./jpeg/bin
./proj/bin
./proj/share
./szip/bin
./zlib/bin
加入环境变量GDAL_DATA
./gdal/data

七、使用Swig生成C#的平台调用代码

  1. 打开swig/csharp文件加如下所示

    images
    images

  2. 打开 x64 Native Tools Command Prompt for VS 2019, 并改变路径到GDAL的源码路径下执行 nmake /f makefile.vc interface

    images

  3. 目录结果如下所示,其中const、gdal、ogr、osr路径下将生成csharp可以调用的源码。

    images
    images
    images
    images

  4. 再次执行命令,nmake /f makefile.vc 路径保持不变,结果如下所示

    images