Mini-XML移植到arm9开发板
libmxml (mini-xml) 移植过程: 主机环境
./configure --prefix=/var/Hi3515/Hi3515_SDK_V1.0.8.0/mpp/sample/elev/mxml-1.3/build --enable-shared CC=/opt/hisi-linux/x86-arm/gcc-3.4.3-uClibc-0.9.28/bin/arm-hisi-linux-gcc AR=/opt/hisi-linux/x86-arm/gcc-3.4.3-uClibc-0.9.28/bin/arm-hisi-linux-ar --host=arm-linux
Testing library... ./testmxml test.xml >temp1.xml 2>temp1s.xml make: *** [testmxml] ERROR 199
这时不要着急,因为是交叉编译,生成的是二进制可执行文件,当然在主机上面不能执行,所以需要将Makefile中关于测试的这小段代码屏蔽掉 这时需要修改一下Makefile文件了,在修改之前,先设置一下权限,因为经过执行./configure之后Makefile变成只读的了 chmod a+rw ./Makefile
这时make一下,还会报错,说是 /bin/sh: ./mxmldoc: cannot execute binary file make: *** [mxml.xml] Error 126
修改了这两处之后,就不会再报错了,我把修改后的这两部分列一下,见下面 # # testmxml # testmxml: libmxml.a testmxml.o $(CC) $(LDFLAGS) -o $@ testmxml.o libmxml.a testmxml.o: mxml.h # # mxml.xml # mxml.xml: mxmldoc mxml.h $(PUBLIBOBJS:.o=.c) $(RM) mxml.xml valgrind: mxmldoc $(RM) valgrind.xml valgrind --leak-check=yes ./mxmldoc valgrind.xml mxml.h $(PUBLIBOBJS:.o=.c) >valgrind.html 2>valgrind.out
下面摘一些其他博客中的说明: 对于其他版本的gcc,路径很可能不一样。在这里我们应该灵活处理。 在交叉编译链所在目录中: 1、搜索头文件最多的目录,用来存放头文件。这个目录下一般有很多子文件夹。如果不行,就在每个有头文件存放的位置都放一个mxml.h,以保证编译器能找到该文件 2、搜多存有so文件的目录(一般有多个),每个都把动态链接库和静态链接库的所有文件放进去。以保证编译器能找到。 在库文件和头文件就位后,我们就可以在项目中使用libmxml了。 使用方法: 1、添加 #include <mxml.h> 为目标机添加动态链接库 这样,动态编译的文件就能在目标板上运行了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |