libxml2 海思平台交叉编译

1、前言

    xml使用非常广泛,而libxml2是C编写,非常著名,现在把该库移植到海思平台上,用来解析参数配置文件。

2、源码下载

    我的源码版本是libxml2-2.9.4

3、编译

 平台:aarch64-himix100-linux-

 配置选项:./configure --host=arm-linux --target=arm-linux CC=aarch64-himix100-linux-gcc AR=aarch64-himix100-linux-ar LD=aarch64-himix100-linux-ld  --prefix=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/target/usr/

make & make install

4、生成动态库和静态库

    在.libs下生成库文件,非常大,使用aarch64-himix100-linux-strip一下,头文件在include下,在其他程序中只要有include和lib就可以使用。

libxml2 海思平台交叉编译_第1张图片

5.使用

编译testReader 报错

CC /home/xxx/CMYTCode-proj/sample/testReader/.obj/testReader.o
aarch64-himix100-linux-g++ -Wno-unused-variable -Wall -Werror -Os -Wno-write-strings -Wno-sign-compare -fno-strict-aliasing -traditional -Wno-reorder -Wno-char-subscripts -o "testReader" /home/shliu/CMYTCode-proj/sample/testReader/.obj/testReader.o -L/home/xxx/CMYTCode-proj/release/sample//../libcommon/lib/  -lpthread -lxml2
/home/xxx/CMYTCode-proj/release/sample//../libcommon/lib//libxml2.so: undefined reference to `dlopen'
/home/xxx/CMYTCode-proj/release/sample//../libcommon/lib//libxml2.so: undefined reference to `dlclose'
/home/xxx/CMYTCode-proj/release/sample//../libcommon/lib//libxml2.so: undefined reference to `dlerror'
/home/xxx/CMYTCode-proj/release/sample//../libcommon/lib//libxml2.so: undefined reference to `dlsym'
collect2: error: ld returned 1 exit status
rm_makefile:119: recipe for target 'testReader' failed
make[2]: *** [testReader] Error 1

原因是编译动态库时候没有加上 -ldl库 重新编译动态库,再次编译testReader,ok

./testReader --consumed slashdot.xml 
3675 bytes consumed by parser

 

你可能感兴趣的:(海思方案)