libxml版本:libxml2-2.9.1
交叉编译器:arm-poky-linux-gnueabi-gcc
编译过程很简单,只是配置方法有一个需要注意的细节。我看了好几篇文章,配置方法各有不同,但都未指出细节问题,对配置含义不清楚的时候常常会被其误解,导致配置错误,多费许多周折。
1、下载源码包
wget /browse/libxml2/snapshot/libxml2-2.9.1.zip
2、配置编译
配置命令
./configure CROSS_COMPILE=arm-poky-linux-gnueabi- --host=arm-poky-linux-gnueabi --prefix=/home/xk/libxml/libxmlinstl/ --with-python=no
这里要注意的是host后所跟的参数,这里应该填入交叉编译器名称去掉gcc的部分,但不能有“-”。例如,我使用的是arm-poky-linux-gnueabi-gcc编译器,所以我host后跟的参数是arm-poky-linux-gnueabi。这里如果配置不好,编译时将会出现“checking for arm-linux-gcc... /opt/poky/1.8/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc
checking whether the C compiler works... no
configure: error: in `/home/qixk/libxml/libxml2-2.9.1':
configure: error: C compiler cannot create executables”
的错误。
配置成功之后输入make && make install编译即可。
编译成功后,库会放在/home/xk/libxml/libxmlinstl/lib目录下,头文件会放在/home/xk/libxml/libxmlinstl/include/libxml2目录下
3、应用程序编译
arm平台应用程序编译,需要在Makefile中加入xml的库文件和头文件,如下:
FLAGS = -Wall -L/home/xk/libxml/libxmlinstl/lib/ -lxml2 -ldl -lmINC = -I/home/xk/libxml/libxmlinstl/include/libxml2