libmxml (Mini-XML) arm-linux 移植笔记
libmxml (Mini-XML) arm-linux 移植笔记20 May 2010 libmxml (mini-xml)一个轻量级的xml库,可完成读写。适合系统资源受限的嵌入式设备。 项目主页(http://www.minixml.org/) 移植过程: 首先准备好交叉编译环境。我使用的是eabi生成的arm-linux-gcc 4.3.2,位于 主机环境
目标机环境
下载源码,得到 解压,进入 ./configure--enable-shared--host=arm-linux make 接着make报错: Testing library... ./testmxml test.xml > temp1.xml 2 > temp1s.xml make: *** [testmxml] 错误 2 这是测试编译出的可执行文件是否可以正常运行时失败的结果。废话,arm-linux-gcc编译出的东西在主机上显然不能运行。 但是在 Testing library 之前,编译已经全部结束。我们可以直接拿走要用的文件。 有用的文件一共 5个:
把库文件复制到交叉编译链所在位置: 我之所以没有在configure的时候直接设定prefix,是因为 eabi生成的编译链的文件结构有点诡异,头的存放目录和库文件存放目录不在一个父目录下。 mxml.h → /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include libmxml.a → /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib libmxml.so → /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib libmxml.so.1 → /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib libmxml.so.1.4 → /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib 对于其他版本的 gcc,路径很可能不一样。在这里我们应该灵活处理。 在交叉编译链所在目录中:
在库文件和头文件就位后,我们就可以在项目中使用 libmxml 了。 使用方法: 1、添加 #include <mxml.h> 2、增加编译参数 例如 arm-linux-gcc -o test test.c-lmxml-lpthread 其中-lpthread是必选参数,因为libmxml库用到了pthread库 在编译时,编译器会优先选择动态链接库编译,这样编译出的文件会小很多。但是同时也需要目标板上有动态链接库支持。如果想静态编译,在编译参数中加上 为目标机添加动态链接库 将
复制到目标板的库目录,一般为 这样,动态编译的文件就能在目标板上运行了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- React Native开发之常用第三方控件
- 在char指针上使用strcpy时程序会中止? (在char数组上工作正
- swift – 如何在iOS 10的iMessage应用程序中发送带有图像和
- vue.js绑定事件监听器示例【基于v-on事件绑定】
- powershell 正则人民币转大写
- Render Pipeline & 光照渲染路径
- objective-c – Xcode块(NSMallocBlock)缩进(从新行自动开始
- ajax textStatus报parsererror异常的解决办法之一
- Objective-C中的’isa’变量等于Java中的“instanceof”
- GPDB管理员笔记(三)装载和卸载数据