博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在VS2005环境下编译在C#下使用的GDAL库

Posted on 2008-09-05 13:15  heeeey  阅读(880)  评论(0)    收藏  举报

     一直搞了整整一天,终于编译成功了,期间遇到了好多问题,在官网(http://www.gdal.org/)上查了说明,可是不是很详细,google上也很少有这方面的饿资料。还得自己摸索着来,唉!

    下载编译需要的源码:gdal152.zip(7M多) 和 swigwin-1.3.36.zip(6M多)

    编译步骤:

    1.先解压到目录e:\gdal-1.5.2和E:\gdal-1.5.2\swigwin-1.3.36

    2.修改e:\gdal-1.5.2下的nmake.opt

      修改3各部分:

      MSVC_VER=1400

     

      GDAL_HOME = "E:\gdal-1.5.2"

 

      SWIG = E:\gdal-1.5.2\swigwin-1.3.36\swig.exe

    3. 大概有两个源文件,由于编码的问题可能会导致编译错误(frmts\leveller\levellerdataset.cpp和frmts\rmf\rmfdataset.cpp)。解决方法:在vs中打开文件,然后再用ie打开文件,将ie的编码改成西欧,将网页中的代码复制到vs中保存,就行了。

    4.修改系统环境变量,添加GDAL_HOME = E:\gdal-1.5.2 ,PATH添加 %GDAL_HOME%;%GDAL_HOME %\bin(可选,我設了,估计不设也行

    5.执行命令,编译gdal(按照顺序依次执行)

      1) . C:\Program Files\Microsoft Visual Studio 8\VC>vcvars32.bat  (vcvars32.bat  的路径根据自己vs安装目录确定)

      2). nmake /f makefile.vc

      3). nmake /f makefile.vc install

      4). namke /f makefile.vc devinstall

    5. 编译完gdal核心库之后,将根目录中生成的gdal15.dll拷贝到目录pymod和swip/csharp中。

    6. 编译swip,生成gdal-wrap .(如果出错,命令最后指定 MSVC_VER=1400)

        1). cd到swip\csharp目录 执行: nmake /f makefile.vc interface

        2). nmake /f makefile.vc

        编译生成8个新的dll

        gdal_csharp.dll
        ogr_csharp.dll
        osr_csharp.dll
        gdalconst_csharp.dll
        gdal_wrap.dll
        ogr_wrap.dll
        osr_wrap.dll
        gdalconst_wrap.dll

        和拷进去的gdal15.dll一起作为c#库。

    7. 最后运行 nmake /f makefile.vc test 进行测试。