您的位置:首页 > 其它

[wbxml]使用Perl封装的WBXML的方法

2008-04-12 15:36 726 查看

使用Perl封装的WBXML的方法

编写者

日期

关键词

郑昀@ultrapower

2005-9-20

WBXML XML Perl

 
 

利用Perl库XML::WBXML,就可以执行XML和WBXML(Wap Binary XML)之间的自由转换了:use XML::WBXML;

 
 

  $wbxml = XML::WBXML::xml_to_wbxml($xml);

$xml = XML::WBXML::wbxml_to_xml($wbxml);

 下面我说一下如何编译这个包。 
 

第一步:

http://libwbxml.aymerick.com/download.php下载Aymerick Jehanne用C++编写的DLL库WBXML Library v0.9.0 (download
 

第二步:

http://search.cpan.org/dist/XML-WBXML/lib/XML/WBXML.pm下载XML-WBXML-0.02.tar.gz,这是Perl封装libwbxml2.dll的库。 
 

第三步:

在编译XML-WBXML之前,你必须先修改XML-WBXML-0.02.tar.gz中的Makefile.pl,因为原先它没有指定要link外部的lib。否则当你make时将看到这样的错误:
编译错误:

   正在创建库 blib/arch/auto/XML/WBXML/WBXML.lib 和对象

blib/arch/auto/XML/WBXML/WBXML.exp

WBXML.obj : error LNK2019: 无法解析的外部符号 _wbxml_conv_xml2wbxml@16 ,该符号

在函数 _XS_XML__WBXML_xml_to_wbxml 中被引用

WBXML.obj : error LNK2019: 无法解析的外部符号 _wbxml_conv_wbxml2xml@16 ,该符号

在函数 _XS_XML__WBXML_wbxml_to_xml 中被引用

blib/arch/auto/XML/WBXML/WBXML.dll : fatal error LNK1120: 2 个无法解析的外部命令

 
 

NMAKE : fatal error U1077: “link” : 返回代码“0x460”
[/b]

 
 

    所以,必须加入“MYEXTLIB  => 'libwbxml2.lib'”的编译选项:
Makefile.PL:

use 5.008003;

use ExtUtils::MakeMaker;

# See lib/ExtUtils/MakeMaker.pm for details of how to influence

# the contents of the Makefile that is written.

WriteMakefile(

    NAME              => 'XML::WBXML',

    VERSION_FROM      => 'lib/XML/WBXML.pm', # finds $VERSION

    PREREQ_PM         => {}, # e.g., Module::Name => 1.1

    ABSTRACT_FROM  => 'lib/XML/WBXML.pm', # retrieve abstract from module

    AUTHOR         => 'David Glasser ',

    LIBS              => ['-lwbxml2'], # e.g., '-lm'

    DEFINE            => '', # e.g., '-DH***E_SOMETHING'

    INC               => '-I.', # e.g., '-I. -I/usr/include/other'

       # Un-comment this if you add C files to link with later:

    #add begin

    MYEXTLIB  => 'libwbxml2.lib',

 
 

    # OBJECT            => '$(O_FILES)', # link all the C files too

);
[/b]

 
 

第四步:

为了拿到libwbxml2.lib,你必须编译WBXML Library v0.9.0源代码,从而得到这个lib。并将源代码中的头文件如wbxml.h、wbxml_parser.h等复制到Perl/lib/XML文件夹下,因为编译时需要这些wbxml的头文件。 
 

第五步:

在perl编译出WBXML.DLL之后,要将libwbxml2.dll和libexpat.dll放在Perl/lib/XML/blib/arch/auto/XML/WBXML文件夹下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: