minixml解析器移植

在嵌入式系统中,minixml解析器最为常用。目前官网发布的开源版本为2.7.(参见官网::http://www.minixml.org 跳转:http://www.msweet.org/projects.php?Z3 下载源码)

以下根据实验过程总结其移植过程。

解析器的移植,首先要明确,是通过交叉编译得到编译源码包时产生的必需文件,包括:libmxm.a  libmxml.so  libmxml.so.1  libmxml.so.1.5

1)解压源码包:

tar -xvzf mxml-2.7.tar.gz

2)进入解压后的文件mxml-2.7,执行:

./configure

 

3)编译

>>如果需要将解析器安装到PC的linux系统上,可以再执行

make

make install

此时查看目录/usr/local/lib,具有以下文件:

这表示解析器在PC上安装成功。但是,尚不能成功使用。详情见后述。

注:如果执行make后出现以下错误:

/bin/ln: creating symbolic link`libmxml.so': Operation not supported

可能你使用的是虚拟机VM,而源码包放在与windows平台共享的文件夹中。解决办法是将源码包拷贝进linux系统目录内

 

>>如果仅是移植,则进入目录mxml-2.7后需要执行:

./configure--enable-shared --host=arm-linux

make

此时会在源码包下生成libmxm.a  libmxml.so  libmxml.so.1  libmxml.so.1.5文件

4)在PC的linux系统中拷贝必要文件

>>拷贝mxml.h 到交叉编译器(arm-linux-gcc)所安装目录的/include目录下,

如:cp mxml.h /opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/include

>>拷贝libmxml.a  libmxml.so   libmxml.so.1   libmxml.so.1.5到交叉编译器的/lib目录下

如我的目录为:/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib

 

6)在ARM的linux系统中拷贝必要文件

进入开发板linux系统中,将在PC上生成的libmxm.a  libmxml.so  libmxml.so.1  libmxml.so.1.5拷贝到开发板linux系统根目录下的/lib目录下。

至此,移植过程全部完成。

 

【测试】

(1)测试移植到ARM上的解析器

>>在PC机上,进入源码包,编译其中提供的供测试用的文件:

arm-linux-gcc testmxml.c -o mytestxmlonARM -lmxml -lpthread

>>将生成的mytestxml文件拷贝到ARM上,然后执行:

./mytestxmlonARM

如果在终端上显示出一个xml文档内容,则表示移植成功!

(2)测试PC的linux系统的解析器

>>进入源码包,执行:gcc testxml.c -o mytestxmlonPC -lmxml -lpthread

>>执行./mytestxmlonPC

此时,会显示错误error while loading shared libraries: libmxml.so.1: cannot open sharedobject

这是由于共享库文件安装到了/usr/local/lib中,程序按照默认共享路径找不到该共享文件。因此,需要将目录/usr/local/lib加到系统共享库配置文件/etc/ld.so.conf

#cat /etc/ld.so.conf

include ld.so.conf.d/*.conf

#include “/usr/local/lib” >> /etc/ld.so.conf

#ldconfig

注:ldconfig命令的用途:在默认搜索目录(/lib/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如:lib*.so*,进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.

然后,再执行:./mytestxmlonPC

同样,如果终端上显示一个xml文档的具体内容,则表示解析器安装成功。

 注意:

1)在编译的时候,记得在加上后缀:-lmxml -lpthread

2)应用程序中,需要包括mxml.h,即#include <mxml.h>

 

 

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值