arm-linux平台下交叉编译使用libxml2

本文介绍了在arm-linux平台上如何进行libxml2的交叉编译与安装,详细阐述了编译过程、注意事项,并提供了libxml2解析xml文件的基本操作和使用示例,帮助开发者在嵌入式系统中利用libxml2处理xml数据。
摘要由CSDN通过智能技术生成

一、xml文件简介
libxml2 是一个xml的C语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT License的免费开源软件。它除了支持C语言外,还支持C++,PHP,Pascal,Ruby,Tcl等,能在windows,linux,solaris,maxosx等平台运行。功能强大。能够满足一般用户的需求。
在一台嵌入式系统中开机上电一般可以选择加载默认配置或者上一次断电之前的配置供选择的选项。还有就是可以实时保存当前系统的状态信息,这一功能就是通过读写xml来实现的。当开机选择为默认设置时,系统就会去读取保存默认信息的xml文件然后去配置系统。读取上一次断电的配置信息也是一样的。保存上次断电的xml文件是系统每隔一段时间实时写入的(具体间隔多少时间看设置了),除此之外还可以保存想要的状态至xml文件中以供系统加载使用。以上是xml在实际项目中使用的一种情况。

二、libxml2的编译与安装
首先在网上下载libxml2,官方下载网址是http://xmlsoft.org/downloads.html,下载完成后执行以下步骤:
1、解压:tar zxvf libxml2-2.7.8.tar.gz
2、进入解压后的安装目录:cd libxml2-2.7.8
3、再执行:./configure –host=arm-xilinx-linux-gnueabi
其中–host=arm-xilinx-linux-gnueabi视使用的交叉编译器而定。在此使用的是xilinx提供的编译器。
4、执行上述步骤后会生成makefile文件。执行make操作后会在当前目录的.lib下有.so的动态库生成(libxml2.so libxml2.so.2 libxml2.so.2.7.8 )。
5、将动态库拷贝到下位机的/usr/lib下。
至此,编写的程序中就可以使用libxml2了。

注意:在编译使用libxml2的程序时,需要注意一下两点
1)、应该在makefile中加入-lxml2对这三个动态库的链接,否则程序是编译不过的。
2)、编译器的链接库中要加入这三个动态库文件,工作项目中的链接库路径是/ti-sdk-am335x/linux-devkit/arm-arago-linux-gnueabi/usr/lib。否则在makefile中虽然指定了链接动态库,但是在路径中没有程序也是编译不过的。
代码中使用到的libxml2中的头文件应该加入到工程中,只需将libxml2-2.7.8\include\libxml中的头文件全部加入到工程文件中即可。

三、libxml2解析
打开system_info.xml文件,其内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<usr_system_info_root>
  <device>
    <system_information>
      <start_up_times>
        <chip>2326</chip>
      </start_up_times>
    </system_information>
  </device>
  <Device>
    <DHCP>OFF</DHCP>
    <Ip>10.11.13.215</Ip>
    <Subnet>255.255.255.0</Subnet>
    <Gateway>192.168.0.1</Gateway>
    <Power_On>Default</Power_On>
    <Sys_language>English</Sys_language>
    <Sys_gpib>18</Sys_gpib>
    <Touch_Adjust>
        <xMin>4120</xMin>
        <xMax>154</xMax>
        <yMin>144</yMin>
        <yMax>3680</yMax>
    </Touch_Adjust>
  </Device>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值