zoukankan      html  css  js  c++  java
  • 扩展OGR格式驱动(二)需要外部依赖库支持

    GDAL/OGR官方网站中给了编写栅格和矢量数据新格式的教程,OGR Driver Implementation Tutorial,但是没有给出具体的编译过程,这篇博文记录如何将新建的格式编入gdal/ogr。

    一、参考扩展OGR格式驱动(一)-无需外部依赖库

    (1) 假设已经完成ogr_spf.h、ogrspfdatasource.cpp、ogrspfdriver.cpp、ogrspflayer.cpp四个源文件的编写,ogrspfdriver.cpp文件中添加驱动注册函数定义: 

    1 void RegisterOGRSPF()
    2  {
    3     OGRSFDriverRegistrar::GetRegistrar()->RegisterDriver( new OGRSPFDriver );
    4  }

    (2) 修改完成后在ogr\ogrsf_frmts文件夹下创建spf文件夹,将这四个源文件放入其中。

    (3) 修改ogrsf_frmts.h和ogrregisterall.cpp文件

    在ogrregisterall.cpp中void OGRRegisterAll()函数中添加下面的代码: 

    1 #ifdef SPF_ENABLED 
    2     RegisterOGRSPF(); 
    3 #endif

     在ogrsf_frmts.h中添加:

    void CPL_DLL RegisterOGRSPF();

    二、修改编译配置文件

    (1) 在ogr\ogrsf_frmts\generic\makefile.vc文件中定义SPF_ENABLED:

       1:  !IFDEF SPF_LIB
       2:  SPFDEF    =    -DSPF_ENABLED
       3:  !ENDIF

    在EXTRAFLAGS后添加:

       1:  EXTRAFLAGS =    -I.. -I..\.. $(OGDIDEF) $(FMEDEF) $(OCIDEF) $(PGDEF) \
       2:                   $(XLSDEF) $(SPFDEF)

    (2) 在nmake.opt中定义SPF_LIB

       1:  # SPF Libraries
       2:  SPF_INC_DIR = D:\SPF\include
       3:  SPF_LIB = D:\SPF\spf.lib  other.lib

    在EXTERNAL_LIBS后添加:

       1:   EXTERNAL_LIBS= … $(SPF_LIB)

    (3)在ogr\ogrsf_frmts\makefile.vc添加

       1:  !IFDEF SPF_INC_DIR
       2:  SPF_DIR = spf
       3:  SPF_OBJ =spf\*.obj
       4:  !ENDIF

    在DIRLIST后追加:

       1:  DIRLIST=... $(SPF_DIR)

    在lib /out:后追加:

       1:  lib /out: ... $(SPF_OBJ)

    三、检验编译后结果

    保存所有修改重新编译gdal/ogr库,在bin下使用ogrinfo --formats命令查看:

    _thumb2

    2_thumb2

    转自:http://www.cnblogs.com/geosky/archive/2013/05/11/new_ogr_driver2.html 

  • 相关阅读:
    HDU 3853 LOOPS:期望dp【网格型】
    SGU 495 Kids and Prizes:期望dp / 概率dp / 推公式
    BZOJ 1629 [Usaco2005 Nov]Cow Acrobats:贪心【局部证明】
    BZOJ 3400 [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队:dp【和为f的倍数】
    BZOJ 1685 [Usaco2005 Oct]Allowance 津贴:贪心【给硬币问题】
    codeforces-473D Mahmoud and Ehab and another array construction task (素数筛法+贪心)
    poj1964最大子矩阵 (单调栈加枚举)
    poj3111 选取物品(二分+贪心)
    codeforces-777E Hanoi Factory (栈+贪心)
    poj3040 发工资(贪心)
  • 原文地址:https://www.cnblogs.com/geosky/p/new_ogr_driver2.html
Copyright © 2011-2022 走看看