lua5.3 交叉编译到安卓
提示:如果只是打算在终端使用
lua
的话,可以尝试termux
,或者说只打算获得lua
的可执行文件,也可以安装termux
,直接在~/../usr/bin
目录下就可以找到lua的可执行文件(前提是你安装过了)
开始
## 前言
因为lua
使用了readline
库,而readline
库中的一些函数(例如:tputs
)是在ncurses
库中实现,所以编译lua
前要先编译这两个库:
1.下载lua5.3源代码
前往官网下载lua的源码:
https://www.lua.org/download.html PS:官方下载连接
https://www.lua.org/manual/5.3/readme.html PS:这是lua的官方编译教程(非交叉编译)
2.整一个交叉编译器
因为是编译在安卓平台,最好用ndk提供的交叉工具链,例如我之前用linaro 4.9
结果编译出的软件光标位置显示异常,改TERM
(终端类型)也没用,然后换的ndk编译成功,当时是用的ndkr20
实际上并不怪交叉编译器,而是自己操作问题,不过第一次写的使用ndk
懒得删改了
1.首先要下载一个交叉编译工具链:
linaro
下载页面:
最新版本:https://www.linaro.org/downloads/
历史版本:https://releases.linaro.org/components/toolchain/binaries/
ndk下载页面:
最新版本:https://developer.android.com/ndk/downloads?hl=zh-cn
历史版本:https://developer.android.com/ndk/downloads/older_releases?hl=zh-cn
ndk官方安装教程
:https://developer.android.com/ndk/guides/standalone_toolchain?hl=zh-cn
安装步骤(建议看上面的链接),因为我写的可能跟你安装的版本不一样,虽然我也是COPY
的官网的
2.下载之后解压,进去解压后的目录
3.安装
build/tools/make_standalone_toolchain.py \
--arch arm64 \
--api 26 \
--install-dir=my-toolchain
#arch是工具链的架构,一般是目标平台的
#api是安卓api的等级,代表安卓版本
#install-dir是安装目录,安装后要加到环境变量里
4.配置环境变量
建议写成文件的形式,然后source env.sh
:
export PATH=$PATH:path#ndk的安装路径
target_host=aarch64-linux-android#交叉编译前缀 不一定是这个
export AR=$target_host-ar #设置压缩工具
export AS=$target_host-clang