针对在aarch64环境下编译产品,须要不少依赖,咱们曾经在aarch64下编译过EasyRTSPLive,碰到了数据库重复定义的问题。在aarch64环境下,咱们近期也尝试编译了EasyGBS,经过Lua编译时,咱们也遇到了部分问题。下面跟你们分享两个咱们遇到的问题。linux
编译系统命令里面出现:luaconf.h:275:31: fatal error: readline/readline.h: 没有那个文件或目录git
编译Lua须要readline库,这个报错的缘由就是从系统环境中没有找到readline对应的库,因此咱们须要使用源码进行编译。web
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
同时在Lua的Makefile中增长readline链接库。以下图配置code
编译系统命令里面出现:machine aarch64 not recognized,表示系统没有识别到aarch64程序。blog
进入到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便可。产品