编译C#环境下GDAL(支持HDF4、NetCDF)
需要文件:
gdal-1.8.0 //gdal1.8版本
swigwin-1.3.4 //gdal1.8版本支持1.3.39系列,1.3.4亦可
HDF4.2.6_win_x86 //HDF4驱动,如要支持hdf4,必须编译
netcdf-4.1.1-win32-src.zip //netCDF驱动,需libsrc文件夹
netcdf-4.1.1-win32-bin.zip //netCDF驱动,需netcdf.lib文件
过程:
1、全部解压
2、用记事本打开gdal-1.8.0文件夹中,make.opt
3、分别修改
MSVC_VER=1400 //1400为visualstudio版本
GDAL_HOME = "C:\warmerda\bld6" //gdal编译生成目录
SWIG = C:\gdal\swigwin-1.3.40\swig.exe //swig目录(全路径,否则加环境变量(不建议))
*hdf4:
# Uncomment the following and update to enable NCSA HDF Release 4 support.
HDF4_PLUGIN = NO
HDF4_DIR = E:\hdf4
HDF4_LIB = $(HDF4_DIR)\dll\hd426m.lib $(HDF4_DIR)\dll\hm426m.lib $(HDF4_DIR)\lib\hd426.lib $(HDF4_DIR)
\lib\hm426.lib Ws2_32.lib
*netCDF:
# Uncomment the following to enable NetCDF format.
NETCDF_PLUGIN = yes
NETCDF_SETTING=yes
NETCDF_LIB=E:\netcdf-4.1.1\bin\netcdf.lib
NETCDF_INC_DIR=E:\netcdf-4.1.1\netcdf-4.1.1\libsrc
4、Visual Studio Tools中,找到gdal-1.8.0键入命令:
nmake /f makefile.vc
nmake /f makefile.vc install
nmake /f makefile.vc devinstall
5、以上,对于gdal编译完成(但此时的gdal还不支持C#)
6、接着,进入gdal-1.8.0文件夹中的swig\csharp文件夹,在刚才的命令后
cd swig
cd csharp
7、利用swig转换成支持C#的gdal
nmake /f makefile.vc interface
nmake /f makefile.vc
nmake /f makefile.vc install
8、大功告成!
注意事项:
1、应该说不同版本的gdal支持的swig也不一样。我开始不知道,在这点上吃了很大苦头。
大家可以在gdal的文件中搜索“OsrPINVOKE.cs”或者“OgrPINVOKE.cs”看下支持的版本。
2、有时编译过程中报错是上面两个cs文件中有重复定义的现象,只要找到报错的地方,将那两处注释掉一处即可。
3、编译成功后,在生成文件下(此处"C:\warmerda\bld6")有个bin文件夹。打开cmd,往其中任意拖入一个bin中的.exe,并在其
后输入“--formats”命令,即可看到目前gdal支持的格式了。