新手步步为营,花费了大半天时间才搞个大概明白,故此记录下来,以免日后忘记,如有错误之处请指点,不胜感激。
目的:为在arm平台运行的Linux C程序,添加xml文件的读取解析功能
环境:
使用Ubuntu16-04-64的虚拟机、嵌入式平台。
1.下载libxml2的源码包
- 执行命令 wget ftp://xmlsoft.org/libxml2/libxml2-2.9.1.tar.gz (此处需虚拟机联网);
- 下载后解压得到目录 libxml2-2.9.1。
2.配置安装
- 进入解压缩后的目录 libxml2-2.9.1;
- 进行configure的配置,执行以下命令:
./configure CROSS_COMPILE=armv7-linux- --host=arm-linux --prefix=/opt/libxml2 CC=/usr/local/ticortex/arm_v7_a_gcc-4.6-linaro_eglibc_eabi/bin/armv7-linux-gcc --without-python
注意:此命令中的/opt/libxml2为libxml2库即将安装的路径,CC=后为交叉编译工具的绝对路径,最后的命令是取消python,不取消会提示缺少python相关库。 - 执行make
- 执行make install
至此完成了libxml2库的交叉编译。
3.程序编译
- 以下是示例程序:
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <string.h>
#include <libxml/parser.h>
#include <libxml/xmlmemory.h>
int main(int argc,char *argv[])
{
if(2 != argc)
{
fprintf(stdout, "Please statrt this program with %s xmlfilepath!", argv[0]);
return 1;
}
//获取指向文档的指针
xmlDocPtr pDoc = xmlReadFile(argv[1],"UTF-8&