aarch64环境下编译国标GB28181协议国标GB28181平台EasyGBS视频平台于Lua编译内没法执行是什么问题?

针对在aarch64环境下编译产品,须要不少依赖,咱们曾经在aarch64下编译过EasyRTSPLive,碰到了数据库重复定义的问题。在aarch64环境下,咱们近期也尝试编译了EasyGBS,经过Lua编译时,咱们也遇到了部分问题。下面跟你们分享两个咱们遇到的问题。linux

EasyGBS播放界面 

GBS11.png

问题1:readline/readline.h:没有那个文件或目录

编译系统命令里面出现:luaconf.h:275:31: fatal error: readline/readline.h: 没有那个文件或目录git

174.png

编译Lua须要readline库,这个报错的缘由就是从系统环境中没有找到readline对应的库,因此咱们须要使用源码进行编译。web

Readline编译步骤

1)下载Readline源码
wget -c ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz
2)解压后进行编译数据库

tar -vxf readline-6.2.tar.gz 
cd readline-6.2
./configure CC=aarch64-linux-gnu-gcc --host=aarch64-linux-gnu CROSS_COMPILE=aarch64-linux-gnu-gcc --enable-static --disable-shared --prefix=/opt/aarch64/readline-6.2
Make & make install

编译完成后,在安装目录生成readline 库文件已经须要的头文件lua

175.png

同时在Lua的Makefile中增长readline链接库。以下图配置code

176.png

问题2:machine aarch64 not recognized

编译系统命令里面出现:machine aarch64 not recognized,表示系统没有识别到aarch64程序。blog

177.png

进入到support 目录执行以下命令,下载最新的配置文件get

wget -O config.guess 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'
wget -O config.sub 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'

最后编译lua源码

make linux CC=aarch64-linux-gnu-gcc

两个问题都解决后,lua编译完成,生成liblua.a便可。产品

178.png