libxml2在Linux arm平台的交叉编译

libxml版本:libxml2-2.9.1

交叉编译器:arm-poky-linux-gnueabi-gcc

 

编译过程很简单,只是配置方法有一个需要注意的细节。我看了好几篇文章,配置方法各有不同,但都没有指出要注意的细节,对配置含义不清楚的时候常常会被其误解,导致配置错误。

1、下载源码包

 wget https://git.gnome.org/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 -lm
INC = -I/home/xk/libxml/libxmlinstl/include/libxml2

 

你可能感兴趣的:(Linux,开发管理)