您的位置:首页 > 其它

扩展OGR格式驱动(二)-需要外部依赖库支持

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

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

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

void RegisterOGRSPF()
{
OGRSFDriverRegistrar::GetRegistrar()->RegisterDriver( new OGRSPFDriver );
}


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

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

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

#ifdef SPF_ENABLED
RegisterOGRSPF();
#endif


在ogrsf_frmts.h中添加:

void CPL_DLL RegisterOGRSPF();


二、修改编译配置文件

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

!IFDEF SPF_LIB

[code]SPFDEF = -DSPF_ENABLED

!ENDIF

[/code]

在EXTRAFLAGS后添加:

EXTRAFLAGS =    -I.. -I..\.. $(OGDIDEF) $(FMEDEF) $(OCIDEF) $(PGDEF) \

[code] $(XLSDEF) $(SPFDEF)

[/code]

(2) 在nmake.opt中定义SPF_LIB

# SPF Libraries

[code]SPF_INC_DIR = D:\SPF\include

SPF_LIB = D:\SPF\spf.lib  other.lib

[/code]

在EXTERNAL_LIBS后添加:

 EXTERNAL_LIBS= … $(SPF_LIB)



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

!IFDEF SPF_INC_DIR

[code]SPF_DIR = spf

SPF_OBJ =spf\*.obj

!ENDIF

[/code]
在DIRLIST后追加:

DIRLIST=... $(SPF_DIR)



在lib /out:后追加:

lib /out: ... $(SPF_OBJ)



三、检验编译后结果

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









转自:http://www.cnblogs.com/geosky/archive/2013/05/11/new_ogr_driver2.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐