Lua:编译 Lua 报错:error: readline/readline.h: No such file or directory
Lua 版本:lua-5.3.5
在 lua-5.3.5 目录中执行 make linux,报错:
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o lua.o lua.c
lua.c:82:31: error: readline/readline.h: No such file or directory
lua.c:83:30: error: readline/history.h: No such file or directory
lua.c: In function ‘pushline’:
lua.c:312: warning: implicit declaration of function ‘readline’
lua.c:312: warning: assignment makes pointer from integer without a cast
lua.c: In function ‘addreturn’:
lua.c:339: warning: implicit declaration of function ‘add_history’
make[2]: *** [lua.o] Error 1
make[2]: Leaving directory `/home/test1280/lua-5.3.5/src'
make[1]: *** [linux] Error 2
make[1]: Leaving directory `/home/test1280/lua-5.3.5/src'
make: *** [linux] Error 2
重点是:
lua.c:82:31: error: readline/readline.h: No such file or directory
lua.c:83:30: error: readline/history.h: No such file or directory
使用 yum search 一下:
yum search readline
安装 readline-devel 尝试:
yum install -y readline-devel
重新编译:
[test1280@localhost lua-5.3.5]$ make linux
编译成功。
注:
1.
缺少 readline 相关的头文件时,可以先使用 yum search 在软件仓库中 search 是否有相关软件。
多个 readline 相关软件,需要安装的是带有 devel 字样的。
安装无 devel 的非开发包,通常不会自动安装相关 HEAD FILE。
2.
yum 不是唯一安装方式,通过 readline 源码安装一样 OK 。
但在 make 时,应当让编译器能找到 readline 相关的库和 HEAD FILE 在哪里。