HDF库最新版本中的动态库以及目录结构都发生了变化,导致按照之前的博客进行编译GDAL时,会出问题。使用HDF4版本为HDF4-4.2.10,HDF5的版本为HDF5-1.8.12。两个库的目录结构如图1所示。

编译GDAL使用最新的HDF库配置文件_文件名

图1 HDF4和HDF5库目录结构

其中inlcude为头文件目录,lib为lib库目录,bin为dll以及exe工具目录。图2是两个HDF库的lib目录文件名称。

编译GDAL使用最新的HDF库配置文件_文件名_02

图2 两个HDF库的lib目录文件名称

可以看出,两个HDF的库lib发生了很大的变化,按照GDAL库中nmake.opt文件默认进行修改编译会提示找不到lib,如果使用上面的HDF库,将GDAL库中的nmake.opt文件对应的部分修改为下面的内容即可。路径部分请根据自己的环境进行修改。最后重新编译即可。

# Uncomment the following and update to enable NCSA HDF Release 4 support.
HDF4_PLUGIN = NO
HDF4_DIR = F:\Work\GDAL\gdal_need\HDF4-4.2.10
HDF4_LIB = $(HDF4_DIR)\lib\hdf.lib $(HDF4_DIR)\lib\mfhdf.lib

# Uncomment the following and update to enable NCSA HDF Release 5 support.
HDF5_PLUGIN = NO
HDF5_DIR = F:\Work\GDAL\gdal_need\HDF5-1.8.12
HDF5_LIB = $(HDF5_DIR)\lib\hdf5.lib $(HDF5_DIR)\lib\hdf5_cpp.lib