C/C++程序读写Android中xml文件

本文介绍了如何在Android系统上运行C/C++可执行程序,重点是通过交叉编译来处理XML文件。选择了mxml库进行编译,因为它是纯C语言且依赖较少。文章详细阐述了mxml库的交叉编译步骤,包括配置、修改Makefile以及解决链接问题。最后,展示了如何使用交叉编译器arm-linux-androideabi-gcc编译主程序,并处理了常见的链接错误。
摘要由CSDN通过智能技术生成

Created: September 2, 2021
作者: 秋水君

 前言

怎么编写能在Android系统中运行的C/C++可执行程序,一般有一下两种方法:

1. 通过谷歌提供的JNI机制
2. 交叉编译(本文选用方式)

安卓一般搭载在ARM架构下,其文件格式与常规X86架构的电脑端有所不同,电脑端可运行的可执行文件无法在安卓端直接运行,这就需要进行交叉编译,将代码编译为ARM环境下能够运行的程序。交叉编译有更大的自由度,可以使用NDK里提供的交叉编译工具,例如 android-ndk-r13b中就有交叉编译器 arm-linux-androideabi-gcc。

注:作者编程环境为 X86-64架构下的Ubuntu系统

xml库

可选的库有libxml2等,我这里选用 mxml 。原因在于1.纯C语言开发,更小巧便捷 2. 其依赖的库更少,之后交叉编译更容易。具体过程如下:

1. 从[GitHub](https://github.com/michaelrsweet/mxml/releases)获取压缩包  mxml-3.2.tar.gz

注意mxml也要经过交叉编译,正常gcc编译的mxml库在主程序交叉编译时无法直接链接到主程序。

1. 下载后解压,运行 /.configure ,设定编译器选项  CC=arm-linux-androideabi-gcc     及  编译输出路径 —–prefix=XXX  
2. 运行命令 ./configure  得到Makefile。修改Makefile将 LIBS = -lpthre

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值