arm-linux-g++ 下交叉编译libxml2
由于XML在数据存储方面的优势,使得使用xml作为配置文件,是一种常用的手段。
libxml2是一个xml c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT License的免费开源软件。它除了支持c语言版以外,还支持c++、PHP、Pascal、Ruby、Tcl等语言的绑定,能在Windows、Linux、Solaris、MacOsX等平台上运行。功能还是相当强大的,相信满足一般用户需求没有任何问题。
最近在arm-linux平台上需要用到libxml2库,这里做一个记录。
首先,从libxml2官网上下载相关软件包,我用的是libxml2-sources-2.7.8.tar.gz 。
1、 解压后,./configure –host=arm-linux
2、 make
3、 make install
这样就生成了arm下的共享库文件(.so)和静态链接库文件(.a),默认存放在/usr/lib下面(当然与你本机的环境变量有关)
在进行编译时,可以使用如下命令
mipsel-linux-gcc -o targetfile sourcefile.c -I /usr/local/include/libxml2/ -L /usr/local/lib -lxml2
通过file命令,可以看到目标程序的类型
ELF 32-bit LSB executable, MIPS, MIPS64 version 1 (SYSV), dynamically linked (uses shared libs), not stripped
这样就得到目标程序。
把这个程序放到arm平台的开发板上,然后把libxml2.so.2放在开发板的/lib或者/usr/lib目录下,即可在开发板上正常运行目标程序。