编译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支持的格式了。

posted @ 2013-10-25 15:10  vstion  阅读(1371)  评论(0编辑  收藏  举报