VS2019编译GDAL2.4.0源码
工具准备
- gdal源码
- proj4源码
- geos源码
- hdf4源码
- hdf5源码
步骤
一、使用VS2019编译proj4 C++源码
-
按图示选择源码路径与将要生成的vs解决方案的存放路径。
-
点击Configure并按图所示在弹出的窗口中选择Visual Studio版本。
-
确定后日志信息最后一行出现Configuring Done即表示配置检测成功,顺便修改一下 CMAKE_INSTALL_PREFIX变量,此变量是生成的解决方案对应的INSTALL工程的安装目录,点击Generate生成。
-
出现Generating Done字样即表示生成VS解决方案成功。
-
点击OpenProject会自动使用Visual Studio 打开刚生成的解决方案。选择Release配置项,并生成INSTALL工程,即可将PROJ4的编译结果安装到之前配置的 CMAKE_INSTALL_PREFIX 变量的路径下。
-
生成结果如下所示。
二、编译geos C++源码
-
编译方式与Proj4一致,如下图所示。
三、编译hdf4 C++源码
-
编译方式与之前一直,不同之处在于参数检测时的配置,如下图所示
-
打开解决方案后改为Release配置并生成INSTALL项目会报如下所示错误。
-
由于源码提供的Cmake文件有问题,所以之前没有选择zlib,与jpeg 的支持,待生成解决方案后,自行配置,配置方式如下所示。
-
如下图为hdf4-shared与hdf4-static两项目配置附加目录
-
如下图为hdf4-shared配置附加依赖项
-
再次生成INSTALL项目,如果没有hdf-shared 与 hdf-static的错误 即为成功,其它的测试项目的错误不予理会。生成结果如下所示。
四、编译hdf5 C++源码
- 同proj
五、编译gdal C++源码
-
修改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.libGEOS_DIR=d:/gdal/release/geos
GEOS_CFLAGS = -I$(GEOS_DIR)/include -DHAVE_GEOS
GEOS_LIB = $(GEOS_DIR)/lib/libgeos.libHDF4_PLUGIN = YES
HDF4_DIR = D:\gdal\release\hdf4
HDF4_LIB = /LIBPATH:$(HDF4_DIR)\lib libhdf.lib
HDF4_INCLUDE = $(HDF4_DIR)\includeHDF5_PLUGIN = YES
HDF5_DIR = D:\GDAL\release\hdf5
HDF5_LIB = $(HDF5_DIR)\lib\libhdf5.lib -
打开 x64 Native Tools Command Prompt for VS 2019, 并改变路径到GDAL的源码路径下执行 nmake -f makefile.vc MSVC_VER=1900 WIN64=1 INSTALL,会报以下错误
-
通过修改源码临时解决。
-
重新执行命令
六、配置环境变量
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#的平台调用代码
-
打开swig/csharp文件加如下所示
-
打开 x64 Native Tools Command Prompt for VS 2019, 并改变路径到GDAL的源码路径下执行 nmake /f makefile.vc interface
-
目录结果如下所示,其中const、gdal、ogr、osr路径下将生成csharp可以调用的源码。
-
再次执行命令,nmake /f makefile.vc 路径保持不变,结果如下所示